import 'dart:math' as math;

import '../Solar.dart';

/// 寿星天文历工具
/// http://www.nongli.net/sxwnl/
/// @author 6tail
class ShouXingUtil {
  static const PI_2 = 2 * math.pi;

  static const ONE_THIRD = 1 / 3;

  static const SECOND_PER_DAY = 86400;

  static const SECOND_PER_RAD = 648000 / math.pi;

  static const List<double> NUT_B = [
    2.1824,
    -33.75705,
    36e-6,
    -1720,
    920,
    3.5069,
    1256.66393,
    11e-6,
    -132,
    57,
    1.3375,
    16799.4182,
    -51e-6,
    -23,
    10,
    4.3649,
    -67.5141,
    72e-6,
    21,
    -9,
    0.04,
    -628.302,
    0,
    -14,
    0,
    2.36,
    8328.691,
    0,
    7,
    0,
    3.46,
    1884.966,
    0,
    -5,
    2,
    5.44,
    16833.175,
    0,
    -4,
    2,
    3.69,
    25128.110,
    0,
    -3,
    0,
    3.55,
    628.362,
    0,
    2,
    0
  ];
  static const List<double> DT_AT = [
    -4000,
    108371.7,
    -13036.80,
    392.000,
    0.0000,
    -500,
    17201.0,
    -627.82,
    16.170,
    -0.3413,
    -150,
    12200.6,
    -346.41,
    5.403,
    -0.1593,
    150,
    9113.8,
    -328.13,
    -1.647,
    0.0377,
    500,
    5707.5,
    -391.41,
    0.915,
    0.3145,
    900,
    2203.4,
    -283.45,
    13.034,
    -0.1778,
    1300,
    490.1,
    -57.35,
    2.085,
    -0.0072,
    1600,
    120.0,
    -9.81,
    -1.532,
    0.1403,
    1700,
    10.2,
    -0.91,
    0.510,
    -0.0370,
    1800,
    13.4,
    -0.72,
    0.202,
    -0.0193,
    1830,
    7.8,
    -1.81,
    0.416,
    -0.0247,
    1860,
    8.3,
    -0.13,
    -0.406,
    0.0292,
    1880,
    -5.4,
    0.32,
    -0.183,
    0.0173,
    1900,
    -2.3,
    2.06,
    0.169,
    -0.0135,
    1920,
    21.2,
    1.69,
    -0.304,
    0.0167,
    1940,
    24.2,
    1.22,
    -0.064,
    0.0031,
    1960,
    33.2,
    0.51,
    0.231,
    -0.0109,
    1980,
    51.0,
    1.29,
    -0.026,
    0.0032,
    2000,
    63.87,
    0.1,
    0,
    0,
    2005,
    64.7,
    0.4,
    0,
    0,
    2015,
    69
  ];
  static const List<double> XL0 = [
    10000000000,
    20,
    578,
    920,
    1100,
    1124,
    1136,
    1148,
    1217,
    1226,
    1229,
    1229,
    1229,
    1229,
    1937,
    2363,
    2618,
    2633,
    2660,
    2666,
    17534704567.0,
    0.00000000000,
    0.00000000000,
    334165646,
    4.669256804,
    6283.075849991,
    3489428,
    4.6261024,
    12566.1517000,
    349706,
    2.744118,
    5753.384885,
    341757,
    2.828866,
    3.523118,
    313590,
    3.627670,
    77713.771468,
    267622,
    4.418084,
    7860.419392,
    234269,
    6.135162,
    3930.209696,
    132429,
    0.742464,
    11506.769770,
    127317,
    2.037097,
    529.690965,
    119917,
    1.109629,
    1577.343542,
    99025,
    5.23268,
    5884.92685,
    90186,
    2.04505,
    26.29832,
    85722,
    3.50849,
    398.14900,
    77979,
    1.17883,
    5223.69392,
    75314,
    2.53339,
    5507.55324,
    50526,
    4.58293,
    18849.22755,
    49238,
    4.20507,
    775.52261,
    35666,
    2.91954,
    0.06731,
    31709,
    5.84902,
    11790.62909,
    28413,
    1.89869,
    796.29801,
    27104,
    0.31489,
    10977.07880,
    24281,
    0.34481,
    5486.77784,
    20616,
    4.80647,
    2544.31442,
    20539,
    1.86948,
    5573.14280,
    20226,
    2.45768,
    6069.77675,
    15552,
    0.83306,
    213.29910,
    13221,
    3.41118,
    2942.46342,
    12618,
    1.08303,
    20.77540,
    11513,
    0.64545,
    0.98032,
    10285,
    0.63600,
    4694.00295,
    10190,
    0.97569,
    15720.83878,
    10172,
    4.26680,
    7.11355,
    9921,
    6.2099,
    2146.1654,
    9761,
    0.6810,
    155.4204,
    8580,
    5.9832,
    161000.6857,
    8513,
    1.2987,
    6275.9623,
    8471,
    3.6708,
    71430.6956,
    7964,
    1.8079,
    17260.1547,
    7876,
    3.0370,
    12036.4607,
    7465,
    1.7551,
    5088.6288,
    7387,
    3.5032,
    3154.6871,
    7355,
    4.6793,
    801.8209,
    6963,
    0.8330,
    9437.7629,
    6245,
    3.9776,
    8827.3903,
    6115,
    1.8184,
    7084.8968,
    5696,
    2.7843,
    6286.5990,
    5612,
    4.3869,
    14143.4952,
    5558,
    3.4701,
    6279.5527,
    5199,
    0.1891,
    12139.5535,
    5161,
    1.3328,
    1748.0164,
    5115,
    0.2831,
    5856.4777,
    4900,
    0.4874,
    1194.4470,
    4104,
    5.3682,
    8429.2413,
    4094,
    2.3985,
    19651.0485,
    3920,
    6.1683,
    10447.3878,
    3677,
    6.0413,
    10213.2855,
    3660,
    2.5696,
    1059.3819,
    3595,
    1.7088,
    2352.8662,
    3557,
    1.7760,
    6812.7668,
    3329,
    0.5931,
    17789.8456,
    3041,
    0.4429,
    83996.8473,
    3005,
    2.7398,
    1349.8674,
    2535,
    3.1647,
    4690.4798,
    2474,
    0.2148,
    3.5904,
    2366,
    0.4847,
    8031.0923,
    2357,
    2.0653,
    3340.6124,
    2282,
    5.2220,
    4705.7323,
    2189,
    5.5559,
    553.5694,
    2142,
    1.4256,
    16730.4637,
    2109,
    4.1483,
    951.7184,
    2030,
    0.3713,
    283.8593,
    1992,
    5.2221,
    12168.0027,
    1986,
    5.7747,
    6309.3742,
    1912,
    3.8222,
    23581.2582,
    1889,
    5.3863,
    149854.4001,
    1790,
    2.2149,
    13367.9726,
    1748,
    4.5605,
    135.0651,
    1622,
    5.9884,
    11769.8537,
    1508,
    4.1957,
    6256.7775,
    1442,
    4.1932,
    242.7286,
    1435,
    3.7236,
    38.0277,
    1397,
    4.4014,
    6681.2249,
    1362,
    1.8893,
    7632.9433,
    1250,
    1.1305,
    5.5229,
    1205,
    2.6223,
    955.5997,
    1200,
    1.0035,
    632.7837,
    1129,
    0.1774,
    4164.3120,
    1083,
    0.3273,
    103.0928,
    1052,
    0.9387,
    11926.2544,
    1050,
    5.3591,
    1592.5960,
    1033,
    6.1998,
    6438.4962,
    1001,
    6.0291,
    5746.2713,
    980,
    0.999,
    11371.705,
    980,
    5.244,
    27511.468,
    938,
    2.624,
    5760.498,
    923,
    0.483,
    522.577,
    922,
    4.571,
    4292.331,
    905,
    5.337,
    6386.169,
    862,
    4.165,
    7058.598,
    841,
    3.299,
    7234.794,
    836,
    4.539,
    25132.303,
    813,
    6.112,
    4732.031,
    812,
    6.271,
    426.598,
    801,
    5.821,
    28.449,
    787,
    0.996,
    5643.179,
    776,
    2.957,
    23013.540,
    769,
    3.121,
    7238.676,
    758,
    3.974,
    11499.656,
    735,
    4.386,
    316.392,
    731,
    0.607,
    11513.883,
    719,
    3.998,
    74.782,
    706,
    0.323,
    263.084,
    676,
    5.911,
    90955.552,
    663,
    3.665,
    17298.182,
    653,
    5.791,
    18073.705,
    630,
    4.717,
    6836.645,
    615,
    1.458,
    233141.314,
    612,
    1.075,
    19804.827,
    596,
    3.321,
    6283.009,
    596,
    2.876,
    6283.143,
    555,
    2.452,
    12352.853,
    541,
    5.392,
    419.485,
    531,
    0.382,
    31441.678,
    519,
    4.065,
    6208.294,
    513,
    2.361,
    10973.556,
    494,
    5.737,
    9917.697,
    450,
    3.272,
    11015.106,
    449,
    3.653,
    206.186,
    447,
    2.064,
    7079.374,
    435,
    4.423,
    5216.580,
    421,
    1.906,
    245.832,
    413,
    0.921,
    3738.761,
    402,
    0.840,
    20.355,
    387,
    1.826,
    11856.219,
    379,
    2.344,
    3.881,
    374,
    2.954,
    3128.389,
    370,
    5.031,
    536.805,
    365,
    1.018,
    16200.773,
    365,
    1.083,
    88860.057,
    352,
    5.978,
    3894.182,
    352,
    2.056,
    244287.600,
    351,
    3.713,
    6290.189,
    340,
    1.106,
    14712.317,
    339,
    0.978,
    8635.942,
    339,
    3.202,
    5120.601,
    333,
    0.837,
    6496.375,
    325,
    3.479,
    6133.513,
    316,
    5.089,
    21228.392,
    316,
    1.328,
    10873.986,
    309,
    3.646,
    10.637,
    303,
    1.802,
    35371.887,
    296,
    3.397,
    9225.539,
    288,
    6.026,
    154717.610,
    281,
    2.585,
    14314.168,
    262,
    3.856,
    266.607,
    262,
    2.579,
    22483.849,
    257,
    1.561,
    23543.231,
    255,
    3.949,
    1990.745,
    251,
    3.744,
    10575.407,
    240,
    1.161,
    10984.192,
    238,
    0.106,
    7.046,
    236,
    4.272,
    6040.347,
    234,
    3.577,
    10969.965,
    211,
    3.714,
    65147.620,
    210,
    0.754,
    13521.751,
    207,
    4.228,
    5650.292,
    202,
    0.814,
    170.673,
    201,
    4.629,
    6037.244,
    200,
    0.381,
    6172.870,
    199,
    3.933,
    6206.810,
    199,
    5.197,
    6262.300,
    197,
    1.046,
    18209.330,
    195,
    1.070,
    5230.807,
    195,
    4.869,
    36.028,
    194,
    4.313,
    6244.943,
    192,
    1.229,
    709.933,
    192,
    5.595,
    6282.096,
    192,
    0.602,
    6284.056,
    189,
    3.744,
    23.878,
    188,
    1.904,
    15.252,
    188,
    0.867,
    22003.915,
    182,
    3.681,
    15110.466,
    181,
    0.491,
    1.484,
    179,
    3.222,
    39302.097,
    179,
    1.259,
    12559.038,
    62833196674749.0,
    0.000000000000,
    0.000000000000,
    20605886,
    2.67823456,
    6283.07584999,
    430343,
    2.635127,
    12566.151700,
    42526,
    1.59047,
    3.52312,
    11926,
    5.79557,
    26.29832,
    10898,
    2.96618,
    1577.34354,
    9348,
    2.5921,
    18849.2275,
    7212,
    1.1385,
    529.6910,
    6777,
    1.8747,
    398.1490,
    6733,
    4.4092,
    5507.5532,
    5903,
    2.8880,
    5223.6939,
    5598,
    2.1747,
    155.4204,
    4541,
    0.3980,
    796.2980,
    3637,
    0.4662,
    775.5226,
    2896,
    2.6471,
    7.1135,
    2084,
    5.3414,
    0.9803,
    1910,
    1.8463,
    5486.7778,
    1851,
    4.9686,
    213.2991,
    1729,
    2.9912,
    6275.9623,
    1623,
    0.0322,
    2544.3144,
    1583,
    1.4305,
    2146.1654,
    1462,
    1.2053,
    10977.0788,
    1246,
    2.8343,
    1748.0164,
    1188,
    3.2580,
    5088.6288,
    1181,
    5.2738,
    1194.4470,
    1151,
    2.0750,
    4694.0030,
    1064,
    0.7661,
    553.5694,
    997,
    1.303,
    6286.599,
    972,
    4.239,
    1349.867,
    945,
    2.700,
    242.729,
    858,
    5.645,
    951.718,
    758,
    5.301,
    2352.866,
    639,
    2.650,
    9437.763,
    610,
    4.666,
    4690.480,
    583,
    1.766,
    1059.382,
    531,
    0.909,
    3154.687,
    522,
    5.661,
    71430.696,
    520,
    1.854,
    801.821,
    504,
    1.425,
    6438.496,
    433,
    0.241,
    6812.767,
    426,
    0.774,
    10447.388,
    413,
    5.240,
    7084.897,
    374,
    2.001,
    8031.092,
    356,
    2.429,
    14143.495,
    350,
    4.800,
    6279.553,
    337,
    0.888,
    12036.461,
    337,
    3.862,
    1592.596,
    325,
    3.400,
    7632.943,
    322,
    0.616,
    8429.241,
    318,
    3.188,
    4705.732,
    297,
    6.070,
    4292.331,
    295,
    1.431,
    5746.271,
    290,
    2.325,
    20.355,
    275,
    0.935,
    5760.498,
    270,
    4.804,
    7234.794,
    253,
    6.223,
    6836.645,
    228,
    5.003,
    17789.846,
    225,
    5.672,
    11499.656,
    215,
    5.202,
    11513.883,
    208,
    3.955,
    10213.286,
    208,
    2.268,
    522.577,
    206,
    2.224,
    5856.478,
    206,
    2.550,
    25132.303,
    203,
    0.910,
    6256.778,
    189,
    0.532,
    3340.612,
    188,
    4.735,
    83996.847,
    179,
    1.474,
    4164.312,
    178,
    3.025,
    5.523,
    177,
    3.026,
    5753.385,
    159,
    4.637,
    3.286,
    157,
    6.124,
    5216.580,
    155,
    3.077,
    6681.225,
    154,
    4.200,
    13367.973,
    143,
    1.191,
    3894.182,
    138,
    3.093,
    135.065,
    136,
    4.245,
    426.598,
    134,
    5.765,
    6040.347,
    128,
    3.085,
    5643.179,
    127,
    2.092,
    6290.189,
    125,
    3.077,
    11926.254,
    125,
    3.445,
    536.805,
    114,
    3.244,
    12168.003,
    112,
    2.318,
    16730.464,
    111,
    3.901,
    11506.770,
    111,
    5.320,
    23.878,
    105,
    3.750,
    7860.419,
    103,
    2.447,
    1990.745,
    96,
    0.82,
    3.88,
    96,
    4.08,
    6127.66,
    91,
    5.42,
    206.19,
    91,
    0.42,
    7079.37,
    88,
    5.17,
    11790.63,
    81,
    0.34,
    9917.70,
    80,
    3.89,
    10973.56,
    78,
    2.40,
    1589.07,
    78,
    2.58,
    11371.70,
    77,
    3.98,
    955.60,
    77,
    3.36,
    36.03,
    76,
    1.30,
    103.09,
    75,
    5.18,
    10969.97,
    75,
    4.96,
    6496.37,
    73,
    5.21,
    38.03,
    72,
    2.65,
    6309.37,
    70,
    5.61,
    3738.76,
    69,
    2.60,
    3496.03,
    69,
    0.39,
    15.25,
    69,
    2.78,
    20.78,
    65,
    1.13,
    7058.60,
    64,
    4.28,
    28.45,
    61,
    5.63,
    10984.19,
    60,
    0.73,
    419.48,
    60,
    5.28,
    10575.41,
    58,
    5.55,
    17298.18,
    58,
    3.19,
    4732.03,
    5291887,
    0.0000000,
    0.0000000,
    871984,
    1.072097,
    6283.075850,
    30913,
    0.86729,
    12566.15170,
    2734,
    0.0530,
    3.5231,
    1633,
    5.1883,
    26.2983,
    1575,
    3.6846,
    155.4204,
    954,
    0.757,
    18849.228,
    894,
    2.057,
    77713.771,
    695,
    0.827,
    775.523,
    506,
    4.663,
    1577.344,
    406,
    1.031,
    7.114,
    381,
    3.441,
    5573.143,
    346,
    5.141,
    796.298,
    317,
    6.053,
    5507.553,
    302,
    1.192,
    242.729,
    289,
    6.117,
    529.691,
    271,
    0.306,
    398.149,
    254,
    2.280,
    553.569,
    237,
    4.381,
    5223.694,
    208,
    3.754,
    0.980,
    168,
    0.902,
    951.718,
    153,
    5.759,
    1349.867,
    145,
    4.364,
    1748.016,
    134,
    3.721,
    1194.447,
    125,
    2.948,
    6438.496,
    122,
    2.973,
    2146.165,
    110,
    1.271,
    161000.686,
    104,
    0.604,
    3154.687,
    100,
    5.986,
    6286.599,
    92,
    4.80,
    5088.63,
    89,
    5.23,
    7084.90,
    83,
    3.31,
    213.30,
    76,
    3.42,
    5486.78,
    71,
    6.19,
    4690.48,
    68,
    3.43,
    4694.00,
    65,
    1.60,
    2544.31,
    64,
    1.98,
    801.82,
    61,
    2.48,
    10977.08,
    50,
    1.44,
    6836.65,
    49,
    2.34,
    1592.60,
    46,
    1.31,
    4292.33,
    46,
    3.81,
    149854.40,
    43,
    0.04,
    7234.79,
    40,
    4.94,
    7632.94,
    39,
    1.57,
    71430.70,
    38,
    3.17,
    6309.37,
    35,
    0.99,
    6040.35,
    35,
    0.67,
    1059.38,
    31,
    3.18,
    2352.87,
    31,
    3.55,
    8031.09,
    30,
    1.92,
    10447.39,
    30,
    2.52,
    6127.66,
    28,
    4.42,
    9437.76,
    28,
    2.71,
    3894.18,
    27,
    0.67,
    25132.30,
    26,
    5.27,
    6812.77,
    25,
    0.55,
    6279.55,
    23,
    1.38,
    4705.73,
    22,
    0.64,
    6256.78,
    20,
    6.07,
    640.88,
    28923,
    5.84384,
    6283.07585,
    3496,
    0.0000,
    0.0000,
    1682,
    5.4877,
    12566.1517,
    296,
    5.196,
    155.420,
    129,
    4.722,
    3.523,
    71,
    5.30,
    18849.23,
    64,
    5.97,
    242.73,
    40,
    3.79,
    553.57,
    11408,
    3.14159,
    0.00000,
    772,
    4.134,
    6283.076,
    77,
    3.84,
    12566.15,
    42,
    0.42,
    155.42,
    88,
    3.14,
    0.00,
    17,
    2.77,
    6283.08,
    5,
    2.01,
    155.42,
    3,
    2.21,
    12566.15,
    27962,
    3.19870,
    84334.66158,
    10164,
    5.42249,
    5507.55324,
    8045,
    3.8801,
    5223.6939,
    4381,
    3.7044,
    2352.8662,
    3193,
    4.0003,
    1577.3435,
    2272,
    3.9847,
    1047.7473,
    1814,
    4.9837,
    6283.0758,
    1639,
    3.5646,
    5856.4777,
    1444,
    3.7028,
    9437.7629,
    1430,
    3.4112,
    10213.2855,
    1125,
    4.8282,
    14143.4952,
    1090,
    2.0857,
    6812.7668,
    1037,
    4.0566,
    71092.8814,
    971,
    3.473,
    4694.003,
    915,
    1.142,
    6620.890,
    878,
    4.440,
    5753.385,
    837,
    4.993,
    7084.897,
    770,
    5.554,
    167621.576,
    719,
    3.602,
    529.691,
    692,
    4.326,
    6275.962,
    558,
    4.410,
    7860.419,
    529,
    2.484,
    4705.732,
    521,
    6.250,
    18073.705,
    903,
    3.897,
    5507.553,
    618,
    1.730,
    5223.694,
    380,
    5.244,
    2352.866,
    166,
    1.627,
    84334.662,
    10001398880.0,
    0.00000000000,
    0.00000000000,
    167069963,
    3.098463508,
    6283.075849991,
    1395602,
    3.0552461,
    12566.1517000,
    308372,
    5.198467,
    77713.771468,
    162846,
    1.173877,
    5753.384885,
    157557,
    2.846852,
    7860.419392,
    92480,
    5.45292,
    11506.76977,
    54244,
    4.56409,
    3930.20970,
    47211,
    3.66100,
    5884.92685,
    34598,
    0.96369,
    5507.55324,
    32878,
    5.89984,
    5223.69392,
    30678,
    0.29867,
    5573.14280,
    24319,
    4.27350,
    11790.62909,
    21183,
    5.84715,
    1577.34354,
    18575,
    5.02194,
    10977.07880,
    17484,
    3.01194,
    18849.22755,
    10984,
    5.05511,
    5486.77784,
    9832,
    0.8868,
    6069.7768,
    8650,
    5.6896,
    15720.8388,
    8583,
    1.2708,
    161000.6857,
    6490,
    0.2725,
    17260.1547,
    6292,
    0.9218,
    529.6910,
    5706,
    2.0137,
    83996.8473,
    5574,
    5.2416,
    71430.6956,
    4938,
    3.2450,
    2544.3144,
    4696,
    2.5781,
    775.5226,
    4466,
    5.5372,
    9437.7629,
    4252,
    6.0111,
    6275.9623,
    3897,
    5.3607,
    4694.0030,
    3825,
    2.3926,
    8827.3903,
    3749,
    0.8295,
    19651.0485,
    3696,
    4.9011,
    12139.5535,
    3566,
    1.6747,
    12036.4607,
    3454,
    1.8427,
    2942.4634,
    3319,
    0.2437,
    7084.8968,
    3192,
    0.1837,
    5088.6288,
    3185,
    1.7778,
    398.1490,
    2846,
    1.2134,
    6286.5990,
    2779,
    1.8993,
    6279.5527,
    2628,
    4.5890,
    10447.3878,
    2460,
    3.7866,
    8429.2413,
    2393,
    4.9960,
    5856.4777,
    2359,
    0.2687,
    796.2980,
    2329,
    2.8078,
    14143.4952,
    2210,
    1.9500,
    3154.6871,
    2035,
    4.6527,
    2146.1654,
    1951,
    5.3823,
    2352.8662,
    1883,
    0.6731,
    149854.4001,
    1833,
    2.2535,
    23581.2582,
    1796,
    0.1987,
    6812.7668,
    1731,
    6.1520,
    16730.4637,
    1717,
    4.4332,
    10213.2855,
    1619,
    5.2316,
    17789.8456,
    1381,
    5.1896,
    8031.0923,
    1364,
    3.6852,
    4705.7323,
    1314,
    0.6529,
    13367.9726,
    1041,
    4.3329,
    11769.8537,
    1017,
    1.5939,
    4690.4798,
    998,
    4.201,
    6309.374,
    966,
    3.676,
    27511.468,
    874,
    6.064,
    1748.016,
    779,
    3.674,
    12168.003,
    771,
    0.312,
    7632.943,
    756,
    2.626,
    6256.778,
    746,
    5.648,
    11926.254,
    693,
    2.924,
    6681.225,
    680,
    1.423,
    23013.540,
    674,
    0.563,
    3340.612,
    663,
    5.661,
    11371.705,
    659,
    3.136,
    801.821,
    648,
    2.650,
    19804.827,
    615,
    3.029,
    233141.314,
    612,
    5.134,
    1194.447,
    563,
    4.341,
    90955.552,
    552,
    2.091,
    17298.182,
    534,
    5.100,
    31441.678,
    531,
    2.407,
    11499.656,
    523,
    4.624,
    6438.496,
    513,
    5.324,
    11513.883,
    477,
    0.256,
    11856.219,
    461,
    1.722,
    7234.794,
    458,
    3.766,
    6386.169,
    458,
    4.466,
    5746.271,
    423,
    1.055,
    5760.498,
    422,
    1.557,
    7238.676,
    415,
    2.599,
    7058.598,
    401,
    3.030,
    1059.382,
    397,
    1.201,
    1349.867,
    379,
    4.907,
    4164.312,
    360,
    5.707,
    5643.179,
    352,
    3.626,
    244287.600,
    348,
    0.761,
    10973.556,
    342,
    3.001,
    4292.331,
    336,
    4.546,
    4732.031,
    334,
    3.138,
    6836.645,
    324,
    4.164,
    9917.697,
    316,
    1.691,
    11015.106,
    307,
    0.238,
    35371.887,
    298,
    1.306,
    6283.143,
    298,
    1.750,
    6283.009,
    293,
    5.738,
    16200.773,
    286,
    5.928,
    14712.317,
    281,
    3.515,
    21228.392,
    280,
    5.663,
    8635.942,
    277,
    0.513,
    26.298,
    268,
    4.207,
    18073.705,
    266,
    0.900,
    12352.853,
    260,
    2.962,
    25132.303,
    255,
    2.477,
    6208.294,
    242,
    2.800,
    709.933,
    231,
    1.054,
    22483.849,
    229,
    1.070,
    14314.168,
    216,
    1.314,
    154717.610,
    215,
    6.038,
    10873.986,
    200,
    0.561,
    7079.374,
    198,
    2.614,
    951.718,
    197,
    4.369,
    167283.762,
    186,
    2.861,
    5216.580,
    183,
    1.660,
    39302.097,
    183,
    5.912,
    3738.761,
    175,
    2.145,
    6290.189,
    173,
    2.168,
    10575.407,
    171,
    3.702,
    1592.596,
    171,
    1.343,
    3128.389,
    164,
    5.550,
    6496.375,
    164,
    5.856,
    10984.192,
    161,
    1.998,
    10969.965,
    161,
    1.909,
    6133.513,
    157,
    4.955,
    25158.602,
    154,
    6.216,
    23543.231,
    153,
    5.357,
    13521.751,
    150,
    5.770,
    18209.330,
    150,
    5.439,
    155.420,
    139,
    1.778,
    9225.539,
    139,
    1.626,
    5120.601,
    128,
    2.460,
    13916.019,
    123,
    0.717,
    143571.324,
    122,
    2.654,
    88860.057,
    121,
    4.414,
    3894.182,
    121,
    1.192,
    3.523,
    120,
    4.030,
    553.569,
    119,
    1.513,
    17654.781,
    117,
    3.117,
    14945.316,
    113,
    2.698,
    6040.347,
    110,
    3.085,
    43232.307,
    109,
    0.998,
    955.600,
    108,
    2.939,
    17256.632,
    107,
    5.285,
    65147.620,
    103,
    0.139,
    11712.955,
    103,
    5.850,
    213.299,
    102,
    3.046,
    6037.244,
    101,
    2.842,
    8662.240,
    100,
    3.626,
    6262.300,
    98,
    2.36,
    6206.81,
    98,
    5.11,
    6172.87,
    98,
    2.00,
    15110.47,
    97,
    2.67,
    5650.29,
    97,
    2.75,
    6244.94,
    96,
    4.02,
    6282.10,
    96,
    5.31,
    6284.06,
    92,
    0.10,
    29088.81,
    85,
    3.26,
    20426.57,
    84,
    2.60,
    28766.92,
    81,
    3.58,
    10177.26,
    80,
    5.81,
    5230.81,
    78,
    2.53,
    16496.36,
    77,
    4.06,
    6127.66,
    73,
    0.04,
    5481.25,
    72,
    5.96,
    12559.04,
    72,
    5.92,
    4136.91,
    71,
    5.49,
    22003.91,
    70,
    3.41,
    7.11,
    69,
    0.62,
    11403.68,
    69,
    3.90,
    1589.07,
    69,
    1.96,
    12416.59,
    69,
    4.51,
    426.60,
    67,
    1.61,
    11087.29,
    66,
    4.50,
    47162.52,
    66,
    5.08,
    283.86,
    66,
    4.32,
    16858.48,
    65,
    1.04,
    6062.66,
    64,
    1.59,
    18319.54,
    63,
    5.70,
    45892.73,
    63,
    4.60,
    66567.49,
    63,
    3.82,
    13517.87,
    62,
    2.62,
    11190.38,
    61,
    1.54,
    33019.02,
    60,
    5.58,
    10344.30,
    60,
    5.38,
    316428.23,
    60,
    5.78,
    632.78,
    59,
    6.12,
    9623.69,
    57,
    0.16,
    17267.27,
    57,
    3.86,
    6076.89,
    57,
    1.98,
    7668.64,
    56,
    4.78,
    20199.09,
    55,
    4.56,
    18875.53,
    55,
    3.51,
    17253.04,
    54,
    3.07,
    226858.24,
    54,
    4.83,
    18422.63,
    53,
    5.02,
    12132.44,
    52,
    3.63,
    5333.90,
    52,
    0.97,
    155427.54,
    51,
    3.36,
    20597.24,
    50,
    0.99,
    11609.86,
    50,
    2.21,
    1990.75,
    48,
    1.62,
    12146.67,
    48,
    1.17,
    12569.67,
    47,
    4.62,
    5436.99,
    47,
    1.81,
    12562.63,
    47,
    0.59,
    21954.16,
    47,
    0.76,
    7342.46,
    46,
    0.27,
    4590.91,
    46,
    3.77,
    156137.48,
    45,
    5.66,
    10454.50,
    44,
    5.84,
    3496.03,
    43,
    0.24,
    17996.03,
    41,
    5.93,
    51092.73,
    41,
    4.21,
    12592.45,
    40,
    5.14,
    1551.05,
    40,
    5.28,
    15671.08,
    39,
    3.69,
    18052.93,
    39,
    4.94,
    24356.78,
    38,
    2.72,
    11933.37,
    38,
    5.23,
    7477.52,
    38,
    4.99,
    9779.11,
    37,
    3.70,
    9388.01,
    37,
    4.44,
    4535.06,
    36,
    2.16,
    28237.23,
    36,
    2.54,
    242.73,
    36,
    0.22,
    5429.88,
    35,
    6.15,
    19800.95,
    35,
    2.92,
    36949.23,
    34,
    5.63,
    2379.16,
    34,
    5.73,
    16460.33,
    34,
    5.11,
    5849.36,
    33,
    6.19,
    6268.85,
    10301861,
    1.10748970,
    6283.07584999,
    172124,
    1.064423,
    12566.151700,
    70222,
    3.14159,
    0.00000,
    3235,
    1.0217,
    18849.2275,
    3080,
    2.8435,
    5507.5532,
    2497,
    1.3191,
    5223.6939,
    1849,
    1.4243,
    1577.3435,
    1008,
    5.9138,
    10977.0788,
    865,
    1.420,
    6275.962,
    863,
    0.271,
    5486.778,
    507,
    1.686,
    5088.629,
    499,
    6.014,
    6286.599,
    467,
    5.987,
    529.691,
    440,
    0.518,
    4694.003,
    410,
    1.084,
    9437.763,
    387,
    4.750,
    2544.314,
    375,
    5.071,
    796.298,
    352,
    0.023,
    83996.847,
    344,
    0.949,
    71430.696,
    341,
    5.412,
    775.523,
    322,
    6.156,
    2146.165,
    286,
    5.484,
    10447.388,
    284,
    3.420,
    2352.866,
    255,
    6.132,
    6438.496,
    252,
    0.243,
    398.149,
    243,
    3.092,
    4690.480,
    225,
    3.689,
    7084.897,
    220,
    4.952,
    6812.767,
    219,
    0.420,
    8031.092,
    209,
    1.282,
    1748.016,
    193,
    5.314,
    8429.241,
    185,
    1.820,
    7632.943,
    175,
    3.229,
    6279.553,
    173,
    1.537,
    4705.732,
    158,
    4.097,
    11499.656,
    158,
    5.539,
    3154.687,
    150,
    3.633,
    11513.883,
    148,
    3.222,
    7234.794,
    147,
    3.653,
    1194.447,
    144,
    0.817,
    14143.495,
    135,
    6.151,
    5746.271,
    134,
    4.644,
    6836.645,
    128,
    2.693,
    1349.867,
    123,
    5.650,
    5760.498,
    118,
    2.577,
    13367.973,
    113,
    3.357,
    17789.846,
    110,
    4.497,
    4292.331,
    108,
    5.828,
    12036.461,
    102,
    5.621,
    6256.778,
    99,
    1.14,
    1059.38,
    98,
    0.66,
    5856.48,
    93,
    2.32,
    10213.29,
    92,
    0.77,
    16730.46,
    88,
    1.50,
    11926.25,
    86,
    1.42,
    5753.38,
    85,
    0.66,
    155.42,
    81,
    1.64,
    6681.22,
    80,
    4.11,
    951.72,
    66,
    4.55,
    5216.58,
    65,
    0.98,
    25132.30,
    64,
    4.19,
    6040.35,
    64,
    0.52,
    6290.19,
    63,
    1.51,
    5643.18,
    59,
    6.18,
    4164.31,
    57,
    2.30,
    10973.56,
    55,
    2.32,
    11506.77,
    55,
    2.20,
    1592.60,
    55,
    5.27,
    3340.61,
    54,
    5.54,
    553.57,
    53,
    5.04,
    9917.70,
    53,
    0.92,
    11371.70,
    52,
    3.98,
    17298.18,
    52,
    3.60,
    10969.97,
    49,
    5.91,
    3894.18,
    49,
    2.51,
    6127.66,
    48,
    1.67,
    12168.00,
    46,
    0.31,
    801.82,
    42,
    3.70,
    10575.41,
    42,
    4.05,
    10984.19,
    40,
    2.17,
    7860.42,
    40,
    4.17,
    26.30,
    38,
    5.82,
    7058.60,
    37,
    3.39,
    6496.37,
    36,
    1.08,
    6309.37,
    36,
    5.34,
    7079.37,
    34,
    3.62,
    11790.63,
    32,
    0.32,
    16200.77,
    31,
    4.24,
    3738.76,
    29,
    4.55,
    11856.22,
    29,
    1.26,
    8635.94,
    27,
    3.45,
    5884.93,
    26,
    5.08,
    10177.26,
    26,
    5.38,
    21228.39,
    24,
    2.26,
    11712.96,
    24,
    1.05,
    242.73,
    24,
    5.59,
    6069.78,
    23,
    3.63,
    6284.06,
    23,
    1.64,
    4732.03,
    22,
    3.46,
    213.30,
    21,
    1.05,
    3496.03,
    21,
    3.92,
    13916.02,
    21,
    4.01,
    5230.81,
    20,
    5.16,
    12352.85,
    20,
    0.69,
    1990.75,
    19,
    2.73,
    6062.66,
    19,
    5.01,
    11015.11,
    18,
    6.04,
    6283.01,
    18,
    2.85,
    7238.68,
    18,
    5.60,
    6283.14,
    18,
    5.16,
    17253.04,
    18,
    2.54,
    14314.17,
    17,
    1.58,
    7.11,
    17,
    0.98,
    3930.21,
    17,
    4.75,
    17267.27,
    16,
    2.19,
    6076.89,
    16,
    2.19,
    18073.70,
    16,
    6.12,
    3.52,
    16,
    4.61,
    9623.69,
    16,
    3.40,
    16496.36,
    15,
    0.19,
    9779.11,
    15,
    5.30,
    13517.87,
    15,
    4.26,
    3128.39,
    15,
    0.81,
    709.93,
    14,
    0.50,
    25158.60,
    14,
    4.38,
    4136.91,
    13,
    0.98,
    65147.62,
    13,
    3.31,
    154717.61,
    13,
    2.11,
    1589.07,
    13,
    1.92,
    22483.85,
    12,
    6.03,
    9225.54,
    12,
    1.53,
    12559.04,
    12,
    5.82,
    6282.10,
    12,
    5.61,
    5642.20,
    12,
    2.38,
    167283.76,
    12,
    0.39,
    12132.44,
    12,
    3.98,
    4686.89,
    12,
    5.81,
    12569.67,
    12,
    0.56,
    5849.36,
    11,
    0.45,
    6172.87,
    11,
    5.80,
    16858.48,
    11,
    6.22,
    12146.67,
    11,
    2.27,
    5429.88,
    435939,
    5.784551,
    6283.075850,
    12363,
    5.57935,
    12566.15170,
    1234,
    3.1416,
    0.0000,
    879,
    3.628,
    77713.771,
    569,
    1.870,
    5573.143,
    330,
    5.470,
    18849.228,
    147,
    4.480,
    5507.553,
    110,
    2.842,
    161000.686,
    101,
    2.815,
    5223.694,
    85,
    3.11,
    1577.34,
    65,
    5.47,
    775.52,
    61,
    1.38,
    6438.50,
    50,
    4.42,
    6286.60,
    47,
    3.66,
    7084.90,
    46,
    5.39,
    149854.40,
    42,
    0.90,
    10977.08,
    40,
    3.20,
    5088.63,
    35,
    1.81,
    5486.78,
    32,
    5.35,
    3154.69,
    30,
    3.52,
    796.30,
    29,
    4.62,
    4690.48,
    28,
    1.84,
    4694.00,
    27,
    3.14,
    71430.70,
    27,
    6.17,
    6836.65,
    26,
    1.42,
    2146.17,
    25,
    2.81,
    1748.02,
    24,
    2.18,
    155.42,
    23,
    4.76,
    7234.79,
    21,
    3.38,
    7632.94,
    21,
    0.22,
    4705.73,
    20,
    4.22,
    1349.87,
    20,
    2.01,
    1194.45,
    20,
    4.58,
    529.69,
    19,
    1.59,
    6309.37,
    18,
    5.70,
    6040.35,
    18,
    6.03,
    4292.33,
    17,
    2.90,
    9437.76,
    17,
    2.00,
    8031.09,
    17,
    5.78,
    83996.85,
    16,
    0.05,
    2544.31,
    15,
    0.95,
    6127.66,
    14,
    0.36,
    10447.39,
    14,
    1.48,
    2352.87,
    13,
    0.77,
    553.57,
    13,
    5.48,
    951.72,
    13,
    5.27,
    6279.55,
    13,
    3.76,
    6812.77,
    11,
    5.41,
    6256.78,
    10,
    0.68,
    1592.60,
    10,
    4.95,
    398.15,
    10,
    1.15,
    3894.18,
    10,
    5.20,
    244287.60,
    10,
    1.94,
    11856.22,
    9,
    5.39,
    25132.30,
    8,
    6.18,
    1059.38,
    8,
    0.69,
    8429.24,
    8,
    5.85,
    242.73,
    7,
    5.26,
    14143.50,
    7,
    0.52,
    801.82,
    6,
    2.24,
    8635.94,
    6,
    4.00,
    13367.97,
    6,
    2.77,
    90955.55,
    6,
    5.17,
    7058.60,
    5,
    1.46,
    233141.31,
    5,
    4.13,
    7860.42,
    5,
    3.91,
    26.30,
    5,
    3.89,
    12036.46,
    5,
    5.58,
    6290.19,
    5,
    5.54,
    1990.75,
    5,
    0.83,
    11506.77,
    5,
    6.22,
    6681.22,
    4,
    5.26,
    10575.41,
    4,
    1.91,
    7477.52,
    4,
    0.43,
    10213.29,
    4,
    1.09,
    709.93,
    4,
    5.09,
    11015.11,
    4,
    4.22,
    88860.06,
    4,
    3.57,
    7079.37,
    4,
    1.98,
    6284.06,
    4,
    3.93,
    10973.56,
    4,
    6.18,
    9917.70,
    4,
    0.36,
    10177.26,
    4,
    2.75,
    3738.76,
    4,
    3.33,
    5643.18,
    4,
    5.36,
    25158.60,
    14459,
    4.27319,
    6283.07585,
    673,
    3.917,
    12566.152,
    77,
    0.00,
    0.00,
    25,
    3.73,
    18849.23,
    4,
    2.80,
    6286.60,
    386,
    2.564,
    6283.076,
    31,
    2.27,
    12566.15,
    5,
    3.44,
    5573.14,
    2,
    2.05,
    18849.23,
    1,
    2.06,
    77713.77,
    1,
    4.41,
    161000.69,
    1,
    3.82,
    149854.40,
    1,
    4.08,
    6127.66,
    1,
    5.26,
    6438.50,
    9,
    1.22,
    6283.08,
    1,
    0.66,
    12566.15
  ];
  static const List<List<double>> XL1 = [
    [
      22639.586,
      0.78475822,
      8328.691424623,
      1.5229241,
      25.0719,
      -0.123598,
      4586.438,
      0.1873974,
      7214.06286536,
      -2.184756,
      -18.860,
      0.08280,
      2369.914,
      2.5429520,
      15542.75428998,
      -0.661832,
      6.212,
      -0.04080,
      769.026,
      3.140313,
      16657.38284925,
      3.04585,
      50.144,
      -0.2472,
      666.418,
      1.527671,
      628.30195521,
      -0.02664,
      0.062,
      -0.0054,
      411.596,
      4.826607,
      16866.9323150,
      -1.28012,
      -1.07,
      -0.0059,
      211.656,
      4.115028,
      -1114.6285593,
      -3.70768,
      -43.93,
      0.2064,
      205.436,
      0.230523,
      6585.7609101,
      -2.15812,
      -18.92,
      0.0882,
      191.956,
      4.898507,
      23871.4457146,
      0.86109,
      31.28,
      -0.164,
      164.729,
      2.586078,
      14914.4523348,
      -0.6352,
      6.15,
      -0.035,
      147.321,
      5.45530,
      -7700.3894694,
      -1.5496,
      -25.01,
      0.118,
      124.988,
      0.48608,
      7771.3771450,
      -0.3309,
      3.11,
      -0.020,
      109.380,
      3.88323,
      8956.9933798,
      1.4963,
      25.13,
      -0.129,
      55.177,
      5.57033,
      -1324.1780250,
      0.6183,
      7.3,
      -0.035,
      45.100,
      0.89898,
      25195.623740,
      0.2428,
      24.0,
      -0.129,
      39.533,
      3.81213,
      -8538.240890,
      2.8030,
      26.1,
      -0.118,
      38.430,
      4.30115,
      22756.817155,
      -2.8466,
      -12.6,
      0.042,
      36.124,
      5.49587,
      24986.074274,
      4.5688,
      75.2,
      -0.371,
      30.773,
      1.94559,
      14428.125731,
      -4.3695,
      -37.7,
      0.166,
      28.397,
      3.28586,
      7842.364821,
      -2.2114,
      -18.8,
      0.077,
      24.358,
      5.64142,
      16171.056245,
      -0.6885,
      6.3,
      -0.046,
      18.585,
      4.41371,
      -557.314280,
      -1.8538,
      -22.0,
      0.10,
      17.954,
      3.58454,
      8399.679100,
      -0.3576,
      3.2,
      -0.03,
      14.530,
      4.9416,
      23243.143759,
      0.888,
      31.2,
      -0.16,
      14.380,
      0.9709,
      32200.137139,
      2.384,
      56.4,
      -0.29,
      14.251,
      5.7641,
      -2.301200,
      1.523,
      25.1,
      -0.12,
      13.899,
      0.3735,
      31085.508580,
      -1.324,
      12.4,
      -0.08,
      13.194,
      1.7595,
      -9443.319984,
      -5.231,
      -69.0,
      0.33,
      9.679,
      3.0997,
      -16029.080894,
      -3.072,
      -50.1,
      0.24,
      9.366,
      0.3016,
      24080.995180,
      -3.465,
      -19.9,
      0.08,
      8.606,
      4.1582,
      -1742.930514,
      -3.681,
      -44.0,
      0.21,
      8.453,
      2.8416,
      16100.068570,
      1.192,
      28.2,
      -0.14,
      8.050,
      2.6292,
      14286.150380,
      -0.609,
      6.1,
      -0.03,
      7.630,
      6.2388,
      17285.684804,
      3.019,
      50.2,
      -0.25,
      7.447,
      1.4845,
      1256.603910,
      -0.053,
      0.1,
      -0.01,
      7.371,
      0.2736,
      5957.458955,
      -2.131,
      -19.0,
      0.09,
      7.063,
      5.6715,
      33.757047,
      -0.308,
      -3.6,
      0.02,
      6.383,
      4.7843,
      7004.513400,
      2.141,
      32.4,
      -0.16,
      5.742,
      2.6572,
      32409.686605,
      -1.942,
      5,
      -0.05,
      4.374,
      4.3443,
      22128.51520,
      -2.820,
      -13,
      0.05,
      3.998,
      3.2545,
      33524.31516,
      1.766,
      49,
      -0.25,
      3.210,
      2.2443,
      14985.44001,
      -2.516,
      -16,
      0.06,
      2.915,
      1.7138,
      24499.74767,
      0.834,
      31,
      -0.17,
      2.732,
      1.9887,
      13799.82378,
      -4.343,
      -38,
      0.17,
      2.568,
      5.4122,
      -7072.08751,
      -1.576,
      -25,
      0.11,
      2.521,
      3.2427,
      8470.66678,
      -2.238,
      -19,
      0.07,
      2.489,
      4.0719,
      -486.32660,
      -3.734,
      -44,
      0.20,
      2.146,
      5.6135,
      -1952.47998,
      0.645,
      7,
      -0.03,
      1.978,
      2.7291,
      39414.20000,
      0.199,
      37,
      -0.21,
      1.934,
      1.5682,
      33314.76570,
      6.092,
      100,
      -0.5,
      1.871,
      0.4166,
      30457.20662,
      -1.297,
      12,
      -0.1,
      1.753,
      2.0582,
      -8886.00570,
      -3.38,
      -47,
      0.2,
      1.437,
      2.386,
      -695.87607,
      0.59,
      7,
      0,
      1.373,
      3.026,
      -209.54947,
      4.33,
      51,
      -0.2,
      1.262,
      5.940,
      16728.37052,
      1.17,
      28,
      -0.1,
      1.224,
      6.172,
      6656.74859,
      -4.04,
      -41,
      0.2,
      1.187,
      5.873,
      6099.43431,
      -5.89,
      -63,
      0.3,
      1.177,
      1.014,
      31571.83518,
      2.41,
      56,
      -0.3,
      1.162,
      3.840,
      9585.29534,
      1.47,
      25,
      -0.1,
      1.143,
      5.639,
      8364.73984,
      -2.18,
      -19,
      0.1,
      1.078,
      1.229,
      70.98768,
      -1.88,
      -22,
      0.1,
      1.059,
      3.326,
      40528.82856,
      3.91,
      81,
      -0.4,
      0.990,
      5.013,
      40738.37803,
      -0.42,
      30,
      -0.2,
      0.948,
      5.687,
      -17772.01141,
      -6.75,
      -94,
      0.5,
      0.876,
      0.298,
      -0.35232,
      0,
      0,
      0,
      0.822,
      2.994,
      393.02097,
      0,
      0,
      0,
      0.788,
      1.836,
      8326.39022,
      3.05,
      50,
      -0.2,
      0.752,
      4.985,
      22614.84180,
      0.91,
      31,
      -0.2,
      0.740,
      2.875,
      8330.99262,
      0,
      0,
      0,
      0.669,
      0.744,
      -24357.77232,
      -4.60,
      -75,
      0.4,
      0.644,
      1.314,
      8393.12577,
      -2.18,
      -19,
      0.1,
      0.639,
      5.888,
      575.33849,
      0,
      0,
      0,
      0.635,
      1.116,
      23385.11911,
      -2.87,
      -13,
      0,
      0.584,
      5.197,
      24428.75999,
      2.71,
      53,
      -0.3,
      0.583,
      3.513,
      -9095.55517,
      0.95,
      4,
      0,
      0.572,
      6.059,
      29970.88002,
      -5.03,
      -32,
      0.1,
      0.565,
      2.960,
      0.32863,
      1.52,
      25,
      -0.1,
      0.561,
      4.001,
      -17981.56087,
      -2.43,
      -43,
      0.2,
      0.557,
      0.529,
      7143.07519,
      -0.30,
      3,
      0,
      0.546,
      2.311,
      25614.37623,
      4.54,
      75,
      -0.4,
      0.536,
      4.229,
      15752.30376,
      -4.99,
      -45,
      0.2,
      0.493,
      3.316,
      -8294.9344,
      -1.83,
      -29,
      0.1,
      0.491,
      1.744,
      8362.4485,
      1.21,
      21,
      -0.1,
      0.478,
      1.803,
      -10071.6219,
      -5.20,
      -69,
      0.3,
      0.454,
      0.857,
      15333.2048,
      3.66,
      57,
      -0.3,
      0.445,
      2.071,
      8311.7707,
      -2.18,
      -19,
      0.1,
      0.426,
      0.345,
      23452.6932,
      -3.44,
      -20,
      0.1,
      0.420,
      4.941,
      33733.8646,
      -2.56,
      -2,
      0,
      0.413,
      1.642,
      17495.2343,
      -1.31,
      -1,
      0,
      0.404,
      1.458,
      23314.1314,
      -0.99,
      9,
      -0.1,
      0.395,
      2.132,
      38299.5714,
      -3.51,
      -6,
      0,
      0.382,
      2.700,
      31781.3846,
      -1.92,
      5,
      0,
      0.375,
      4.827,
      6376.2114,
      2.17,
      32,
      -0.2,
      0.361,
      3.867,
      16833.1753,
      -0.97,
      3,
      0,
      0.358,
      5.044,
      15056.4277,
      -4.40,
      -38,
      0.2,
      0.350,
      5.157,
      -8257.7037,
      -3.40,
      -47,
      0.2,
      0.344,
      4.233,
      157.7344,
      0,
      0,
      0,
      0.340,
      2.672,
      13657.8484,
      -0.58,
      6,
      0,
      0.329,
      5.610,
      41853.0066,
      3.29,
      74,
      -0.4,
      0.325,
      5.895,
      -39.8149,
      0,
      0,
      0,
      0.309,
      4.387,
      21500.2132,
      -2.79,
      -13,
      0.1,
      0.302,
      1.278,
      786.0419,
      0,
      0,
      0,
      0.302,
      5.341,
      -24567.3218,
      -0.27,
      -24,
      0.1,
      0.301,
      1.045,
      5889.8848,
      -1.57,
      -12,
      0,
      0.294,
      4.201,
      -2371.2325,
      -3.65,
      -44,
      0.2,
      0.293,
      3.704,
      21642.1886,
      -6.55,
      -57,
      0.2,
      0.290,
      4.069,
      32828.4391,
      2.36,
      56,
      -0.3,
      0.289,
      3.472,
      31713.8105,
      -1.35,
      12,
      -0.1,
      0.285,
      5.407,
      -33.7814,
      0.31,
      4,
      0,
      0.283,
      5.998,
      -16.9207,
      -3.71,
      -44,
      0.2,
      0.283,
      2.772,
      38785.8980,
      0.23,
      37,
      -0.2,
      0.274,
      5.343,
      15613.7420,
      -2.54,
      -16,
      0.1,
      0.263,
      3.997,
      25823.9257,
      0.22,
      24,
      -0.1,
      0.254,
      0.600,
      24638.3095,
      -1.61,
      2,
      0,
      0.253,
      1.344,
      6447.1991,
      0.29,
      10,
      -0.1,
      0.250,
      0.887,
      141.9754,
      -3.76,
      -44,
      0.2,
      0.247,
      0.317,
      5329.1570,
      -2.10,
      -19,
      0.1,
      0.245,
      0.141,
      36.0484,
      -3.71,
      -44,
      0.2,
      0.231,
      2.287,
      14357.1381,
      -2.49,
      -16,
      0.1,
      0.227,
      5.158,
      2.6298,
      0,
      0,
      0,
      0.219,
      5.085,
      47742.8914,
      1.72,
      63,
      -0.3,
      0.211,
      2.145,
      6638.7244,
      -2.18,
      -19,
      0.1,
      0.201,
      4.415,
      39623.7495,
      -4.13,
      -14,
      0,
      0.194,
      2.091,
      588.4927,
      0,
      0,
      0,
      0.193,
      3.057,
      -15400.7789,
      -3.10,
      -50,
      0,
      0.186,
      5.598,
      16799.3582,
      -0.72,
      6,
      0,
      0.185,
      3.886,
      1150.6770,
      0,
      0,
      0,
      0.183,
      1.619,
      7178.0144,
      1.52,
      25,
      0,
      0.181,
      2.635,
      8328.3391,
      1.52,
      25,
      0,
      0.181,
      2.077,
      8329.0437,
      1.52,
      25,
      0,
      0.179,
      3.215,
      -9652.8694,
      -0.90,
      -18,
      0,
      0.176,
      1.716,
      -8815.0180,
      -5.26,
      -69,
      0,
      0.175,
      5.673,
      550.7553,
      0,
      0,
      0,
      0.170,
      2.060,
      31295.0580,
      -5.6,
      -39,
      0,
      0.167,
      1.239,
      7211.7617,
      -0.7,
      6,
      0,
      0.165,
      4.499,
      14967.4158,
      -0.7,
      6,
      0,
      0.164,
      3.595,
      15540.4531,
      0.9,
      31,
      0,
      0.164,
      4.237,
      522.3694,
      0,
      0,
      0,
      0.163,
      4.633,
      15545.0555,
      -2.2,
      -19,
      0,
      0.161,
      0.478,
      6428.0209,
      -2.2,
      -19,
      0,
      0.158,
      2.03,
      13171.5218,
      -4.3,
      -38,
      0,
      0.157,
      2.28,
      7216.3641,
      -3.7,
      -44,
      0,
      0.154,
      5.65,
      7935.6705,
      1.5,
      25,
      0,
      0.152,
      0.46,
      29828.9047,
      -1.3,
      12,
      0,
      0.151,
      1.19,
      -0.7113,
      0,
      0,
      0,
      0.150,
      1.42,
      23942.4334,
      -1.0,
      9,
      0,
      0.144,
      2.75,
      7753.3529,
      1.5,
      25,
      0,
      0.137,
      2.08,
      7213.7105,
      -2.2,
      -19,
      0,
      0.137,
      1.44,
      7214.4152,
      -2.2,
      -19,
      0,
      0.136,
      4.46,
      -1185.6162,
      -1.8,
      -22,
      0,
      0.136,
      3.03,
      8000.1048,
      -2.2,
      -19,
      0,
      0.134,
      2.83,
      14756.7124,
      -0.7,
      6,
      0,
      0.131,
      5.05,
      6821.0419,
      -2.2,
      -19,
      0,
      0.128,
      5.99,
      -17214.6971,
      -4.9,
      -72,
      0,
      0.127,
      5.35,
      8721.7124,
      1.5,
      25,
      0,
      0.126,
      4.49,
      46628.2629,
      -2.0,
      19,
      0,
      0.125,
      5.94,
      7149.6285,
      1.5,
      25,
      0,
      0.124,
      1.09,
      49067.0695,
      1.1,
      55,
      0,
      0.121,
      2.88,
      15471.7666,
      1.2,
      28,
      0,
      0.111,
      3.92,
      41643.4571,
      7.6,
      125,
      -1,
      0.110,
      1.96,
      8904.0299,
      1.5,
      25,
      0,
      0.106,
      3.30,
      -18.0489,
      -2.2,
      -19,
      0,
      0.105,
      2.30,
      -4.9310,
      1.5,
      25,
      0,
      0.104,
      2.22,
      -6.5590,
      -1.9,
      -22,
      0,
      0.101,
      1.44,
      1884.9059,
      -0.1,
      0,
      0,
      0.100,
      5.92,
      5471.1324,
      -5.9,
      -63,
      0,
      0.099,
      1.12,
      15149.7333,
      -0.7,
      6,
      0,
      0.096,
      4.73,
      15508.9972,
      -0.4,
      10,
      0,
      0.095,
      5.18,
      7230.9835,
      1.5,
      25,
      0,
      0.093,
      3.37,
      39900.5266,
      3.9,
      81,
      0,
      0.092,
      2.01,
      25057.0619,
      2.7,
      53,
      0,
      0.092,
      1.21,
      -79.6298,
      0,
      0,
      0,
      0.092,
      1.65,
      -26310.2523,
      -4.0,
      -68,
      0,
      0.091,
      1.01,
      42062.5561,
      -1.0,
      23,
      0,
      0.090,
      6.10,
      29342.5781,
      -5.0,
      -32,
      0,
      0.090,
      4.43,
      15542.4020,
      -0.7,
      6,
      0,
      0.090,
      3.80,
      15543.1066,
      -0.7,
      6,
      0,
      0.089,
      4.15,
      6063.3859,
      -2.2,
      -19,
      0,
      0.086,
      4.03,
      52.9691,
      0,
      0,
      0,
      0.085,
      0.49,
      47952.4409,
      -2.6,
      11,
      0,
      0.085,
      1.60,
      7632.8154,
      2.1,
      32,
      0,
      0.084,
      0.22,
      14392.0773,
      -0.7,
      6,
      0,
      0.083,
      6.22,
      6028.4466,
      -4.0,
      -41,
      0,
      0.083,
      0.63,
      -7909.9389,
      2.8,
      26,
      0,
      0.083,
      5.20,
      -77.5523,
      0,
      0,
      0,
      0.082,
      2.74,
      8786.1467,
      -2.2,
      -19,
      0,
      0.080,
      2.43,
      9166.5428,
      -2.8,
      -26,
      0,
      0.080,
      3.70,
      -25405.1732,
      4.1,
      27,
      0,
      0.078,
      5.68,
      48857.5200,
      5.4,
      106,
      -1,
      0.077,
      1.85,
      8315.5735,
      -2.2,
      -19,
      0,
      0.075,
      5.46,
      -18191.1103,
      1.9,
      8,
      0,
      0.075,
      1.41,
      -16238.6304,
      1.3,
      1,
      0,
      0.074,
      5.06,
      40110.0761,
      -0.4,
      30,
      0,
      0.072,
      2.10,
      64.4343,
      -3.7,
      -44,
      0,
      0.071,
      2.17,
      37671.2695,
      -3.5,
      -6,
      0,
      0.069,
      1.71,
      16693.4313,
      -0.7,
      6,
      0,
      0.069,
      3.33,
      -26100.7028,
      -8.3,
      -119,
      1,
      0.068,
      1.09,
      8329.4028,
      1.5,
      25,
      0,
      0.068,
      3.62,
      8327.9801,
      1.5,
      25,
      0,
      0.068,
      2.41,
      16833.1509,
      -1.0,
      3,
      0,
      0.067,
      3.40,
      24709.2971,
      -3.5,
      -20,
      0,
      0.067,
      1.65,
      8346.7156,
      -0.3,
      3,
      0,
      0.066,
      2.61,
      22547.2677,
      1.5,
      39,
      0,
      0.066,
      3.50,
      15576.5113,
      -1.0,
      3,
      0,
      0.065,
      5.76,
      33037.9886,
      -2.0,
      5,
      0,
      0.065,
      4.58,
      8322.1325,
      -0.3,
      3,
      0,
      0.065,
      6.20,
      17913.9868,
      3.0,
      50,
      0,
      0.065,
      1.50,
      22685.8295,
      -1.0,
      9,
      0,
      0.065,
      2.37,
      7180.3058,
      -1.9,
      -15,
      0,
      0.064,
      1.06,
      30943.5332,
      2.4,
      56,
      0,
      0.064,
      1.89,
      8288.8765,
      1.5,
      25,
      0,
      0.064,
      4.70,
      6.0335,
      0.3,
      4,
      0,
      0.063,
      2.83,
      8368.5063,
      1.5,
      25,
      0,
      0.063,
      5.66,
      -2580.7819,
      0.7,
      7,
      0,
      0.062,
      3.78,
      7056.3285,
      -2.2,
      -19,
      0,
      0.061,
      1.49,
      8294.9100,
      1.8,
      29,
      0,
      0.061,
      0.12,
      -10281.1714,
      -0.9,
      -18,
      0,
      0.061,
      3.06,
      -8362.4729,
      -1.2,
      -21,
      0,
      0.061,
      4.43,
      8170.9571,
      1.5,
      25,
      0,
      0.059,
      5.78,
      -13.1179,
      -3.7,
      -44,
      0,
      0.059,
      5.97,
      6625.5702,
      -2.2,
      -19,
      0,
      0.058,
      5.01,
      -0.5080,
      -0.3,
      0,
      0,
      0.058,
      2.73,
      7161.0938,
      -2.2,
      -19,
      0,
      0.057,
      0.19,
      7214.0629,
      -2.2,
      -19,
      0,
      0.057,
      4.00,
      22199.5029,
      -4.7,
      -35,
      0,
      0.057,
      5.38,
      8119.1420,
      5.8,
      76,
      0,
      0.056,
      1.07,
      7542.6495,
      1.5,
      25,
      0,
      0.056,
      0.28,
      8486.4258,
      1.5,
      25,
      0,
      0.054,
      4.19,
      16655.0816,
      4.6,
      75,
      0,
      0.053,
      0.72,
      7267.0320,
      -2.2,
      -19,
      0,
      0.053,
      3.12,
      12.6192,
      0.6,
      7,
      0,
      0.052,
      2.99,
      -32896.013,
      -1.8,
      -49,
      0,
      0.052,
      3.46,
      1097.708,
      0,
      0,
      0,
      0.051,
      5.37,
      -6443.786,
      -1.6,
      -25,
      0,
      0.051,
      1.35,
      7789.401,
      -2.2,
      -19,
      0,
      0.051,
      5.83,
      40042.502,
      0.2,
      38,
      0,
      0.051,
      3.63,
      9114.733,
      1.5,
      25,
      0,
      0.050,
      1.51,
      8504.484,
      -2.5,
      -22,
      0,
      0.050,
      5.23,
      16659.684,
      1.5,
      25,
      0,
      0.050,
      1.15,
      7247.820,
      -2.5,
      -23,
      0,
      0.047,
      0.25,
      -1290.421,
      0.3,
      0,
      0,
      0.047,
      4.67,
      -32686.464,
      -6.1,
      -100,
      0,
      0.047,
      3.49,
      548.678,
      0,
      0,
      0,
      0.047,
      2.37,
      6663.308,
      -2.2,
      -19,
      0,
      0.046,
      0.98,
      1572.084,
      0,
      0,
      0,
      0.046,
      2.04,
      14954.262,
      -0.7,
      6,
      0,
      0.046,
      3.72,
      6691.693,
      -2.2,
      -19,
      0,
      0.045,
      6.19,
      -235.287,
      0,
      0,
      0,
      0.044,
      2.96,
      32967.001,
      -0.1,
      27,
      0,
      0.044,
      3.82,
      -1671.943,
      -5.6,
      -66,
      0,
      0.043,
      5.82,
      1179.063,
      0,
      0,
      0,
      0.043,
      0.07,
      34152.617,
      1.7,
      49,
      0,
      0.043,
      3.71,
      6514.773,
      -0.3,
      0,
      0,
      0.043,
      5.62,
      15.732,
      -2.5,
      -23,
      0,
      0.043,
      5.80,
      8351.233,
      -2.2,
      -19,
      0,
      0.042,
      0.27,
      7740.199,
      1.5,
      25,
      0,
      0.042,
      6.14,
      15385.020,
      -0.7,
      6,
      0,
      0.042,
      6.13,
      7285.051,
      -4.1,
      -41,
      0,
      0.041,
      1.27,
      32757.451,
      4.2,
      78,
      0,
      0.041,
      4.46,
      8275.722,
      1.5,
      25,
      0,
      0.040,
      0.23,
      8381.661,
      1.5,
      25,
      0,
      0.040,
      5.87,
      -766.864,
      2.5,
      29,
      0,
      0.040,
      1.66,
      254.431,
      0,
      0,
      0,
      0.040,
      0.40,
      9027.981,
      -0.4,
      0,
      0,
      0.040,
      2.96,
      7777.936,
      1.5,
      25,
      0,
      0.039,
      4.67,
      33943.068,
      6.1,
      100,
      0,
      0.039,
      3.52,
      8326.062,
      1.5,
      25,
      0,
      0.039,
      3.75,
      21013.887,
      -6.5,
      -57,
      0,
      0.039,
      5.60,
      606.978,
      0,
      0,
      0,
      0.039,
      1.19,
      8331.321,
      1.5,
      25,
      0,
      0.039,
      2.84,
      7211.433,
      -2.2,
      -19,
      0,
      0.038,
      0.67,
      7216.693,
      -2.2,
      -19,
      0,
      0.038,
      6.22,
      25161.867,
      0.6,
      28,
      0,
      0.038,
      4.40,
      7806.322,
      1.5,
      25,
      0,
      0.038,
      4.16,
      9179.168,
      -2.2,
      -19,
      0,
      0.037,
      4.73,
      14991.999,
      -0.7,
      6,
      0,
      0.036,
      0.35,
      67.514,
      -0.6,
      -7,
      0,
      0.036,
      3.70,
      25266.611,
      -1.6,
      0,
      0,
      0.036,
      5.39,
      16328.796,
      -0.7,
      6,
      0,
      0.035,
      1.44,
      7174.248,
      -2.2,
      -19,
      0,
      0.035,
      5.00,
      15684.730,
      -4.4,
      -38,
      0,
      0.035,
      0.39,
      -15.419,
      -2.2,
      -19,
      0,
      0.035,
      6.07,
      15020.385,
      -0.7,
      6,
      0,
      0.034,
      6.01,
      7371.797,
      -2.2,
      -19,
      0,
      0.034,
      0.96,
      -16623.626,
      -3.4,
      -54,
      0,
      0.033,
      6.24,
      9479.368,
      1.5,
      25,
      0,
      0.033,
      3.21,
      23661.896,
      5.2,
      82,
      0,
      0.033,
      4.06,
      8311.418,
      -2.2,
      -19,
      0,
      0.033,
      2.40,
      1965.105,
      0,
      0,
      0,
      0.033,
      5.17,
      15489.785,
      -0.7,
      6,
      0,
      0.033,
      5.03,
      21986.540,
      0.9,
      31,
      0,
      0.033,
      4.10,
      16691.140,
      2.7,
      46,
      0,
      0.033,
      5.13,
      47114.589,
      1.7,
      63,
      0,
      0.033,
      4.45,
      8917.184,
      1.5,
      25,
      0,
      0.033,
      4.23,
      2.078,
      0,
      0,
      0,
      0.032,
      2.33,
      75.251,
      1.5,
      25,
      0,
      0.032,
      2.10,
      7253.878,
      -2.2,
      -19,
      0,
      0.032,
      3.11,
      -0.224,
      1.5,
      25,
      0,
      0.032,
      4.43,
      16640.462,
      -0.7,
      6,
      0,
      0.032,
      5.68,
      8328.363,
      0,
      0,
      0,
      0.031,
      5.32,
      8329.020,
      3.0,
      50,
      0,
      0.031,
      3.70,
      16118.093,
      -0.7,
      6,
      0,
      0.030,
      3.67,
      16721.817,
      -0.7,
      6,
      0,
      0.030,
      5.27,
      -1881.492,
      -1.2,
      -15,
      0,
      0.030,
      5.72,
      8157.839,
      -2.2,
      -19,
      0,
      0.029,
      5.73,
      -18400.313,
      -6.7,
      -94,
      0,
      0.029,
      2.76,
      16.000,
      -2.2,
      -19,
      0,
      0.029,
      1.75,
      8879.447,
      1.5,
      25,
      0,
      0.029,
      0.32,
      8851.061,
      1.5,
      25,
      0,
      0.029,
      0.90,
      14704.903,
      3.7,
      57,
      0,
      0.028,
      2.90,
      15595.723,
      -0.7,
      6,
      0,
      0.028,
      5.88,
      16864.631,
      0.2,
      24,
      0,
      0.028,
      0.63,
      16869.234,
      -2.8,
      -26,
      0,
      0.028,
      4.04,
      -18609.863,
      -2.4,
      -43,
      0,
      0.027,
      5.83,
      6727.736,
      -5.9,
      -63,
      0,
      0.027,
      6.12,
      418.752,
      4.3,
      51,
      0,
      0.027,
      0.14,
      41157.131,
      3.9,
      81,
      0,
      0.026,
      3.80,
      15.542,
      0,
      0,
      0,
      0.026,
      1.68,
      50181.698,
      4.8,
      99,
      -1,
      0.026,
      0.32,
      315.469,
      0,
      0,
      0,
      0.025,
      5.67,
      19.188,
      0.3,
      0,
      0,
      0.025,
      3.16,
      62.133,
      -2.2,
      -19,
      0,
      0.025,
      3.76,
      15502.939,
      -0.7,
      6,
      0,
      0.025,
      4.53,
      45999.961,
      -2.0,
      19,
      0,
      0.024,
      3.21,
      837.851,
      -4.4,
      -51,
      0,
      0.024,
      2.82,
      38157.596,
      0.3,
      37,
      0,
      0.024,
      5.21,
      15540.124,
      -0.7,
      6,
      0,
      0.024,
      0.26,
      14218.576,
      0,
      13,
      0,
      0.024,
      3.01,
      15545.384,
      -0.7,
      6,
      0,
      0.024,
      1.16,
      -17424.247,
      -0.6,
      -21,
      0,
      0.023,
      2.34,
      -67.574,
      0.6,
      7,
      0,
      0.023,
      2.44,
      18.024,
      -1.9,
      -22,
      0,
      0.023,
      3.70,
      469.400,
      0,
      0,
      0,
      0.023,
      0.72,
      7136.511,
      -2.2,
      -19,
      0,
      0.023,
      4.50,
      15582.569,
      -0.7,
      6,
      0,
      0.023,
      2.80,
      -16586.395,
      -4.9,
      -72,
      0,
      0.023,
      1.51,
      80.182,
      0,
      0,
      0,
      0.023,
      1.09,
      5261.583,
      -1.5,
      -12,
      0,
      0.023,
      0.56,
      54956.954,
      -0.5,
      44,
      0,
      0.023,
      4.01,
      8550.860,
      -2.2,
      -19,
      0,
      0.023,
      4.46,
      38995.448,
      -4.1,
      -14,
      0,
      0.023,
      3.82,
      2358.126,
      0,
      0,
      0,
      0.022,
      3.77,
      32271.125,
      0.5,
      34,
      0,
      0.022,
      0.82,
      15935.775,
      -0.7,
      6,
      0,
      0.022,
      1.07,
      24013.421,
      -2.9,
      -13,
      0,
      0.022,
      0.40,
      8940.078,
      -2.2,
      -19,
      0,
      0.022,
      2.06,
      15700.489,
      -0.7,
      6,
      0,
      0.022,
      4.27,
      15124.002,
      -5.0,
      -45,
      0,
      0.021,
      1.16,
      56071.583,
      3.2,
      88,
      0,
      0.021,
      5.58,
      9572.189,
      -2.2,
      -19,
      0,
      0.020,
      1.70,
      -17.273,
      -3.7,
      -44,
      0,
      0.020,
      3.05,
      214.617,
      0,
      0,
      0,
      0.020,
      4.41,
      8391.048,
      -2.2,
      -19,
      0,
      0.020,
      5.95,
      23869.145,
      2.4,
      56,
      0,
      0.020,
      0.42,
      40947.927,
      -4.7,
      -21,
      0,
      0.019,
      1.39,
      5818.897,
      0.3,
      10,
      0,
      0.019,
      0.71,
      23873.747,
      -0.7,
      6,
      0,
      0.019,
      2.81,
      7291.615,
      -2.2,
      -19,
      0,
      0.019,
      5.09,
      8428.018,
      -2.2,
      -19,
      0,
      0.019,
      4.14,
      6518.187,
      -1.6,
      -12,
      0,
      0.019,
      3.85,
      21.330,
      0,
      0,
      0,
      0.018,
      0.66,
      14445.046,
      -0.7,
      6,
      0,
      0.018,
      1.65,
      0.966,
      -4.0,
      -48,
      0,
      0.018,
      5.64,
      -17143.709,
      -6.8,
      -94,
      0,
      0.018,
      6.01,
      7736.432,
      -2.2,
      -19,
      0,
      0.018,
      2.74,
      31153.083,
      -1.9,
      5,
      0,
      0.018,
      4.58,
      6116.355,
      -2.2,
      -19,
      0,
      0.018,
      2.28,
      46.401,
      0.3,
      0,
      0,
      0.018,
      3.80,
      10213.597,
      1.4,
      25,
      0,
      0.018,
      2.84,
      56281.132,
      -1.1,
      36,
      0,
      0.018,
      3.53,
      8249.062,
      1.5,
      25,
      0,
      0.017,
      4.43,
      20871.911,
      -3,
      -13,
      0,
      0.017,
      4.44,
      627.596,
      0,
      0,
      0,
      0.017,
      1.85,
      628.308,
      0,
      0,
      0,
      0.017,
      1.19,
      8408.321,
      2,
      25,
      0,
      0.017,
      1.95,
      7214.056,
      -2,
      -19,
      0,
      0.017,
      1.57,
      7214.070,
      -2,
      -19,
      0,
      0.017,
      1.65,
      13870.811,
      -6,
      -60,
      0,
      0.017,
      0.30,
      22.542,
      -4,
      -44,
      0,
      0.017,
      2.62,
      -119.445,
      0,
      0,
      0,
      0.016,
      4.87,
      5747.909,
      2,
      32,
      0,
      0.016,
      4.45,
      14339.108,
      -1,
      6,
      0,
      0.016,
      1.83,
      41366.680,
      0,
      30,
      0,
      0.016,
      4.53,
      16309.618,
      -3,
      -23,
      0,
      0.016,
      2.54,
      15542.754,
      -1,
      6,
      0,
      0.016,
      6.05,
      1203.646,
      0,
      0,
      0,
      0.015,
      5.2,
      2751.147,
      0,
      0,
      0,
      0.015,
      1.8,
      -10699.924,
      -5,
      -69,
      0,
      0.015,
      0.4,
      22824.391,
      -3,
      -20,
      0,
      0.015,
      2.1,
      30666.756,
      -6,
      -39,
      0,
      0.015,
      2.1,
      6010.417,
      -2,
      -19,
      0,
      0.015,
      0.7,
      -23729.470,
      -5,
      -75,
      0,
      0.015,
      1.4,
      14363.691,
      -1,
      6,
      0,
      0.015,
      5.8,
      16900.689,
      -2,
      0,
      0,
      0.015,
      5.2,
      23800.458,
      3,
      53,
      0,
      0.015,
      5.3,
      6035.000,
      -2,
      -19,
      0,
      0.015,
      1.2,
      8251.139,
      2,
      25,
      0,
      0.015,
      3.6,
      -8.860,
      0,
      0,
      0,
      0.015,
      0.8,
      882.739,
      0,
      0,
      0,
      0.015,
      3.0,
      1021.329,
      0,
      0,
      0,
      0.015,
      0.6,
      23296.107,
      1,
      31,
      0,
      0.014,
      5.4,
      7227.181,
      2,
      25,
      0,
      0.014,
      0.1,
      7213.352,
      -2,
      -19,
      0,
      0.014,
      4.0,
      15506.706,
      3,
      50,
      0,
      0.014,
      3.4,
      7214.774,
      -2,
      -19,
      0,
      0.014,
      4.6,
      6665.385,
      -2,
      -19,
      0,
      0.014,
      0.1,
      -8.636,
      -2,
      -22,
      0,
      0.014,
      3.1,
      15465.202,
      -1,
      6,
      0,
      0.014,
      4.9,
      508.863,
      0,
      0,
      0,
      0.014,
      3.5,
      8406.244,
      2,
      25,
      0,
      0.014,
      1.3,
      13313.497,
      -8,
      -82,
      0,
      0.014,
      2.8,
      49276.619,
      -3,
      0,
      0,
      0.014,
      0.1,
      30528.194,
      -3,
      -10,
      0,
      0.013,
      1.7,
      25128.050,
      1,
      31,
      0,
      0.013,
      2.9,
      14128.405,
      -1,
      6,
      0,
      0.013,
      3.4,
      57395.761,
      3,
      80,
      0,
      0.013,
      2.7,
      13029.546,
      -1,
      6,
      0,
      0.013,
      3.9,
      7802.556,
      -2,
      -19,
      0,
      0.013,
      1.6,
      8258.802,
      -2,
      -19,
      0,
      0.013,
      2.2,
      8417.709,
      -2,
      -19,
      0,
      0.013,
      0.7,
      9965.210,
      -2,
      -19,
      0,
      0.013,
      3.4,
      50391.247,
      0,
      48,
      0,
      0.013,
      3.0,
      7134.433,
      -2,
      -19,
      0,
      0.013,
      2.9,
      30599.182,
      -5,
      -31,
      0,
      0.013,
      3.6,
      -9723.857,
      1,
      0,
      0,
      0.013,
      4.8,
      7607.084,
      -2,
      -19,
      0,
      0.012,
      0.8,
      23837.689,
      1,
      35,
      0,
      0.012,
      3.6,
      4.409,
      -4,
      -44,
      0,
      0.012,
      5.0,
      16657.031,
      3,
      50,
      0,
      0.012,
      4.4,
      16657.735,
      3,
      50,
      0,
      0.012,
      1.1,
      15578.803,
      -4,
      -38,
      0,
      0.012,
      6.0,
      -11.490,
      0,
      0,
      0,
      0.012,
      1.9,
      8164.398,
      0,
      0,
      0,
      0.012,
      2.4,
      31852.372,
      -4,
      -17,
      0,
      0.012,
      2.4,
      6607.085,
      -2,
      -19,
      0,
      0.012,
      4.2,
      8359.870,
      0,
      0,
      0,
      0.012,
      0.5,
      5799.713,
      -2,
      -19,
      0,
      0.012,
      2.7,
      7220.622,
      0,
      0,
      0,
      0.012,
      4.3,
      -139.720,
      0,
      0,
      0,
      0.012,
      2.3,
      13728.836,
      -2,
      -16,
      0,
      0.011,
      3.6,
      14912.146,
      1,
      31,
      0,
      0.011,
      4.7,
      14916.748,
      -2,
      -19,
      0
    ],
    [
      1.67680,
      4.66926,
      628.301955,
      -0.0266,
      0.1,
      -0.005,
      0.51642,
      3.3721,
      6585.760910,
      -2.158,
      -18.9,
      0.09,
      0.41383,
      5.7277,
      14914.452335,
      -0.635,
      6.2,
      -0.04,
      0.37115,
      3.9695,
      7700.389469,
      1.550,
      25.0,
      -0.12,
      0.27560,
      0.7416,
      8956.993380,
      1.496,
      25.1,
      -0.13,
      0.24599,
      4.2253,
      -2.301200,
      1.523,
      25.1,
      -0.12,
      0.07118,
      0.1443,
      7842.36482,
      -2.211,
      -19,
      0.08,
      0.06128,
      2.4998,
      16171.05625,
      -0.688,
      6,
      0,
      0.04516,
      0.443,
      8399.67910,
      -0.36,
      3,
      0,
      0.04048,
      5.771,
      14286.15038,
      -0.61,
      6,
      0,
      0.03747,
      4.626,
      1256.60391,
      -0.05,
      0,
      0,
      0.03707,
      3.415,
      5957.45895,
      -2.13,
      -19,
      0.1,
      0.03649,
      1.800,
      23243.14376,
      0.89,
      31,
      -0.2,
      0.02438,
      0.042,
      16029.08089,
      3.07,
      50,
      -0.2,
      0.02165,
      1.017,
      -1742.93051,
      -3.68,
      -44,
      0.2,
      0.01923,
      3.097,
      17285.68480,
      3.02,
      50,
      -0.3,
      0.01692,
      1.280,
      0.3286,
      1.52,
      25,
      -0.1,
      0.01361,
      0.298,
      8326.3902,
      3.05,
      50,
      -0.2,
      0.01293,
      4.013,
      7072.0875,
      1.58,
      25,
      -0.1,
      0.01276,
      4.413,
      8330.9926,
      0,
      0,
      0,
      0.01270,
      0.101,
      8470.6668,
      -2.24,
      -19,
      0.1,
      0.01097,
      1.203,
      22128.5152,
      -2.82,
      -13,
      0,
      0.01088,
      2.545,
      15542.7543,
      -0.66,
      6,
      0,
      0.00835,
      0.190,
      7214.0629,
      -2.18,
      -19,
      0.1,
      0.00734,
      4.855,
      24499.7477,
      0.83,
      31,
      -0.2,
      0.00686,
      5.130,
      13799.8238,
      -4.34,
      -38,
      0.2,
      0.00631,
      0.930,
      -486.3266,
      -3.73,
      -44,
      0,
      0.00585,
      0.699,
      9585.2953,
      1.5,
      25,
      0,
      0.00566,
      4.073,
      8328.3391,
      1.5,
      25,
      0,
      0.00566,
      0.638,
      8329.0437,
      1.5,
      25,
      0,
      0.00539,
      2.472,
      -1952.4800,
      0.6,
      7,
      0,
      0.00509,
      2.88,
      -0.7113,
      0,
      0,
      0,
      0.00469,
      3.56,
      30457.2066,
      -1.3,
      12,
      0,
      0.00387,
      0.78,
      -0.3523,
      0,
      0,
      0,
      0.00378,
      1.84,
      22614.8418,
      0.9,
      31,
      0,
      0.00362,
      5.53,
      -695.8761,
      0.6,
      7,
      0,
      0.00317,
      2.80,
      16728.3705,
      1.2,
      28,
      0,
      0.00303,
      6.07,
      157.7344,
      0,
      0,
      0,
      0.00300,
      2.53,
      33.7570,
      -0.3,
      -4,
      0,
      0.00295,
      4.16,
      31571.8352,
      2.4,
      56,
      0,
      0.00289,
      5.98,
      7211.7617,
      -0.7,
      6,
      0,
      0.00285,
      2.06,
      15540.4531,
      0.9,
      31,
      0,
      0.00283,
      2.65,
      2.6298,
      0,
      0,
      0,
      0.00282,
      6.17,
      15545.0555,
      -2.2,
      -19,
      0,
      0.00278,
      1.23,
      -39.8149,
      0,
      0,
      0,
      0.00272,
      3.82,
      7216.3641,
      -3.7,
      -44,
      0,
      0.00270,
      4.37,
      70.9877,
      -1.9,
      -22,
      0,
      0.00256,
      5.81,
      13657.8484,
      -0.6,
      6,
      0,
      0.00244,
      5.64,
      -0.2237,
      1.5,
      25,
      0,
      0.00240,
      2.96,
      8311.7707,
      -2.2,
      -19,
      0,
      0.00239,
      0.87,
      -33.7814,
      0.3,
      4,
      0,
      0.00216,
      2.31,
      15.9995,
      -2.2,
      -19,
      0,
      0.00186,
      3.46,
      5329.1570,
      -2.1,
      -19,
      0,
      0.00169,
      2.40,
      24357.772,
      4.6,
      75,
      0,
      0.00161,
      5.80,
      8329.403,
      1.5,
      25,
      0,
      0.00161,
      5.20,
      8327.980,
      1.5,
      25,
      0,
      0.00160,
      4.26,
      23385.119,
      -2.9,
      -13,
      0,
      0.00156,
      1.26,
      550.755,
      0,
      0,
      0,
      0.00155,
      1.25,
      21500.213,
      -2.8,
      -13,
      0,
      0.00152,
      0.60,
      -16.921,
      -3.7,
      -44,
      0,
      0.00150,
      2.71,
      -79.630,
      0,
      0,
      0,
      0.00150,
      5.29,
      15.542,
      0,
      0,
      0,
      0.00148,
      1.06,
      -2371.232,
      -3.7,
      -44,
      0,
      0.00141,
      0.77,
      8328.691,
      1.5,
      25,
      0,
      0.00141,
      3.67,
      7143.075,
      -0.3,
      0,
      0,
      0.00138,
      5.45,
      25614.376,
      4.5,
      75,
      0,
      0.00129,
      4.90,
      23871.446,
      0.9,
      31,
      0,
      0.00126,
      4.03,
      141.975,
      -3.8,
      -44,
      0,
      0.00124,
      6.01,
      522.369,
      0,
      0,
      0,
      0.00120,
      4.94,
      -10071.622,
      -5.2,
      -69,
      0,
      0.00118,
      5.07,
      -15.419,
      -2.2,
      -19,
      0,
      0.00107,
      3.49,
      23452.693,
      -3.4,
      -20,
      0,
      0.00104,
      4.78,
      17495.234,
      -1.3,
      0,
      0,
      0.00103,
      1.44,
      -18.049,
      -2.2,
      -19,
      0,
      0.00102,
      5.63,
      15542.402,
      -0.7,
      6,
      0,
      0.00102,
      2.59,
      15543.107,
      -0.7,
      6,
      0,
      0.00100,
      4.11,
      -6.559,
      -1.9,
      -22,
      0,
      0.00097,
      0.08,
      15400.779,
      3.1,
      50,
      0,
      0.00096,
      5.84,
      31781.385,
      -1.9,
      5,
      0,
      0.00094,
      1.08,
      8328.363,
      0,
      0,
      0,
      0.00094,
      2.46,
      16799.358,
      -0.7,
      6,
      0,
      0.00094,
      1.69,
      6376.211,
      2.2,
      32,
      0,
      0.00093,
      3.64,
      8329.020,
      3.0,
      50,
      0,
      0.00093,
      2.65,
      16655.082,
      4.6,
      75,
      0,
      0.00090,
      1.90,
      15056.428,
      -4.4,
      -38,
      0,
      0.00089,
      1.59,
      52.969,
      0,
      0,
      0,
      0.00088,
      2.02,
      -8257.704,
      -3.4,
      -47,
      0,
      0.00088,
      3.02,
      7213.711,
      -2.2,
      -19,
      0,
      0.00087,
      0.50,
      7214.415,
      -2.2,
      -19,
      0,
      0.00087,
      0.49,
      16659.684,
      1.5,
      25,
      0,
      0.00082,
      5.64,
      -4.931,
      1.5,
      25,
      0,
      0.00079,
      5.17,
      13171.522,
      -4.3,
      -38,
      0,
      0.00076,
      3.60,
      29828.905,
      -1.3,
      12,
      0,
      0.00076,
      4.08,
      24567.322,
      0.3,
      24,
      0,
      0.00076,
      4.58,
      1884.906,
      -0.1,
      0,
      0,
      0.00073,
      0.33,
      31713.811,
      -1.4,
      12,
      0,
      0.00073,
      0.93,
      32828.439,
      2.4,
      56,
      0,
      0.00071,
      5.91,
      38785.898,
      0.2,
      37,
      0,
      0.00069,
      2.20,
      15613.742,
      -2.5,
      -16,
      0,
      0.00066,
      3.87,
      15.732,
      -2.5,
      -23,
      0,
      0.00066,
      0.86,
      25823.926,
      0.2,
      24,
      0,
      0.00065,
      2.52,
      8170.957,
      1.5,
      25,
      0,
      0.00063,
      0.18,
      8322.132,
      -0.3,
      0,
      0,
      0.00060,
      5.84,
      8326.062,
      1.5,
      25,
      0,
      0.00060,
      5.15,
      8331.321,
      1.5,
      25,
      0,
      0.00060,
      2.18,
      8486.426,
      1.5,
      25,
      0,
      0.00058,
      2.30,
      -1.731,
      -4,
      -44,
      0,
      0.00058,
      5.43,
      14357.138,
      -2,
      -16,
      0,
      0.00057,
      3.09,
      8294.910,
      2,
      29,
      0,
      0.00057,
      4.67,
      -8362.473,
      -1,
      -21,
      0,
      0.00056,
      4.15,
      16833.151,
      -1,
      0,
      0,
      0.00054,
      1.93,
      7056.329,
      -2,
      -19,
      0,
      0.00054,
      5.27,
      8315.574,
      -2,
      -19,
      0,
      0.00052,
      5.6,
      8311.418,
      -2,
      -19,
      0,
      0.00052,
      2.7,
      -77.552,
      0,
      0,
      0,
      0.00051,
      4.3,
      7230.984,
      2,
      25,
      0,
      0.00050,
      0.4,
      -0.508,
      0,
      0,
      0,
      0.00049,
      5.4,
      7211.433,
      -2,
      -19,
      0,
      0.00049,
      4.4,
      7216.693,
      -2,
      -19,
      0,
      0.00049,
      4.3,
      16864.631,
      0,
      24,
      0,
      0.00049,
      2.2,
      16869.234,
      -3,
      -26,
      0,
      0.00047,
      6.1,
      627.596,
      0,
      0,
      0,
      0.00047,
      5.0,
      12.619,
      1,
      7,
      0,
      0.00045,
      4.9,
      -8815.018,
      -5,
      -69,
      0,
      0.00044,
      1.6,
      62.133,
      -2,
      -19,
      0,
      0.00042,
      2.9,
      -13.118,
      -4,
      -44,
      0,
      0.00042,
      4.1,
      -119.445,
      0,
      0,
      0,
      0.00041,
      4.3,
      22756.817,
      -3,
      -13,
      0,
      0.00041,
      3.6,
      8288.877,
      2,
      25,
      0,
      0.00040,
      0.5,
      6663.308,
      -2,
      -19,
      0,
      0.00040,
      1.1,
      8368.506,
      2,
      25,
      0,
      0.00039,
      4.1,
      6443.786,
      2,
      25,
      0,
      0.00039,
      3.1,
      16657.383,
      3,
      50,
      0,
      0.00038,
      0.1,
      16657.031,
      3,
      50,
      0,
      0.00038,
      3.0,
      16657.735,
      3,
      50,
      0,
      0.00038,
      4.6,
      23942.433,
      -1,
      9,
      0,
      0.00037,
      4.3,
      15385.020,
      -1,
      6,
      0,
      0.00037,
      5.0,
      548.678,
      0,
      0,
      0,
      0.00036,
      1.8,
      7213.352,
      -2,
      -19,
      0,
      0.00036,
      1.7,
      7214.774,
      -2,
      -19,
      0,
      0.00035,
      1.1,
      7777.936,
      2,
      25,
      0,
      0.00035,
      1.6,
      -8.860,
      0,
      0,
      0,
      0.00035,
      4.4,
      23869.145,
      2,
      56,
      0,
      0.00035,
      2.0,
      6691.693,
      -2,
      -19,
      0,
      0.00034,
      1.3,
      -1185.616,
      -2,
      -22,
      0,
      0.00034,
      2.2,
      23873.747,
      -1,
      6,
      0,
      0.00033,
      2.0,
      -235.287,
      0,
      0,
      0,
      0.00033,
      3.1,
      17913.987,
      3,
      50,
      0,
      0.00033,
      1.0,
      8351.233,
      -2,
      -19,
      0
    ],
    [
      0.004870,
      4.6693,
      628.30196,
      -0.027,
      0,
      -0.01,
      0.002280,
      2.6746,
      -2.30120,
      1.523,
      25,
      -0.12,
      0.001500,
      3.372,
      6585.76091,
      -2.16,
      -19,
      0.1,
      0.001200,
      5.728,
      14914.45233,
      -0.64,
      6,
      0,
      0.001080,
      3.969,
      7700.38947,
      1.55,
      25,
      -0.1,
      0.000800,
      0.742,
      8956.99338,
      1.50,
      25,
      -0.1,
      0.000254,
      6.002,
      0.3286,
      1.52,
      25,
      -0.1,
      0.000210,
      0.144,
      7842.3648,
      -2.21,
      -19,
      0,
      0.000180,
      2.500,
      16171.0562,
      -0.7,
      6,
      0,
      0.000130,
      0.44,
      8399.6791,
      -0.4,
      3,
      0,
      0.000126,
      5.03,
      8326.3902,
      3.0,
      50,
      0,
      0.000120,
      5.77,
      14286.1504,
      -0.6,
      6,
      0,
      0.000118,
      5.96,
      8330.9926,
      0,
      0,
      0,
      0.000110,
      1.80,
      23243.1438,
      0.9,
      31,
      0,
      0.000110,
      3.42,
      5957.4590,
      -2.1,
      -19,
      0,
      0.000110,
      4.63,
      1256.6039,
      -0.1,
      0,
      0,
      0.000099,
      4.70,
      -0.7113,
      0,
      0,
      0,
      0.000070,
      0.04,
      16029.0809,
      3.1,
      50,
      0,
      0.000070,
      5.14,
      8328.3391,
      1.5,
      25,
      0,
      0.000070,
      5.85,
      8329.0437,
      1.5,
      25,
      0,
      0.000060,
      1.02,
      -1742.9305,
      -3.7,
      -44,
      0,
      0.000060,
      3.10,
      17285.6848,
      3.0,
      50,
      0,
      0.000054,
      5.69,
      -0.352,
      0,
      0,
      0,
      0.000043,
      0.52,
      15.542,
      0,
      0,
      0,
      0.000041,
      2.03,
      2.630,
      0,
      0,
      0,
      0.000040,
      0.10,
      8470.667,
      -2.2,
      -19,
      0,
      0.000040,
      4.01,
      7072.088,
      1.6,
      25,
      0,
      0.000036,
      2.93,
      -8.860,
      -0.3,
      0,
      0,
      0.000030,
      1.20,
      22128.515,
      -2.8,
      -13,
      0,
      0.000030,
      2.54,
      15542.754,
      -0.7,
      6,
      0,
      0.000027,
      4.43,
      7211.762,
      -0.7,
      6,
      0,
      0.000026,
      0.51,
      15540.453,
      0.9,
      31,
      0,
      0.000026,
      1.44,
      15545.055,
      -2.2,
      -19,
      0,
      0.000025,
      5.37,
      7216.364,
      -3.7,
      -44,
      0
    ],
    [
      0.00001200,
      1.041,
      -2.3012,
      1.52,
      25,
      -0.1,
      0.00000170,
      0.31,
      -0.711,
      0,
      0,
      0
    ]
  ];
  static const List<double> SHUO_KB = [
    1457698.231017,
    29.53067166,
    1546082.512234,
    29.53085106,
    1640640.735300,
    29.53060000,
    1642472.151543,
    29.53085439,
    1683430.509300,
    29.53086148,
    1752148.041079,
    29.53085097,
    1807665.420323,
    29.53059851,
    1883618.114100,
    29.53060000,
    1907360.704700,
    29.53060000,
    1936596.224900,
    29.53060000,
    1939135.675300,
    29.53060000,
    1947168.00
  ];
  static const SB =
      '00000000000000000000000020000002000000000000200000001000000000000000000000000000000000000010002000000000000000200000000200000000000000000000002000000000020000000000000000000000000000000000100000000000010000001000001000000000000000100000000020000000000000002000000000000001000000000000001000000000000100000000010010000020000202001101002020200101000002020010100002000000010100202000001010000202020001010000202020001010000202000001010020202001010000020200101000022000010101002020001010100002020201010100002020200010100002020000010100202000010100000202001010000220200101010020200010101001000000000001001000200000000000020000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000020010000000000000000000000000000000000000001000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000010001000000100001001010010101000000000000100001000001000100000000001000000000000100100000000010010100010000000000000000000100011000000000000000000002000000001020000000001001000001000001001000000001000100010010000100001000000100000100100010000000000000010000200000000000000000000000000000000001000000000100100000000000000000000000000000000000000000000000000010000000000101000000000000000000000000000001001010010010100100010000010010000001001001001001000000100100000100010000000100000000000000100000000010100000000001000100010100100000010000000010010000000001000001000000101002000000000100000000000000100001000000010100000101001000000100100100100100000010010010000001001010000000100101001000000000101001000000010101000000000010000001000001000001000000100000000000010010000000000000000010000000100010010000000100000010000010100010010000000000000000001001000000000100101000000010000100110100000000100000000000010000000010000010000100010000000000000000000000010000000000000000100000001000000000001000000000000000100000000000100000010000000100001010000000000101000010100000001001000000010100000000000000000000001000000000001000000000000000000000000000000000000000100000001000000000000100000000000000000000000010000000010010000000001000001010100000001000000000000001000010000101001001010000001000101000000000100100000100110000010010010010001001010010010000001000000000000101000010000000101000000000010000001001001001001000000100101000000010000100010101001010010010000101010010000000101010010000000100010010000010010010000001001010000000100101000100010000000100100001000100100000101010000000000101010100100000100000000000010010000010001001010001000100000001001010000000000000001000100100000100010100001010100000100000000100100100100010010100010001000000010010100000010001010000000001000000000001001010100000001000010100000001001010000101000000010010000100101001000100010100000000010000010000010010001000001000010100000001000000100001000000010000101001001010000001000101000001000100100000100100000010010010010101000000010000000000000010000000001010010010000100010000010010000001001000001001000000100100000100010010100100100001010000100000001010000100000001010100000000100000010000010010010000001001010001000100101000101000010100100000001010100100000001010100000000001000000100000000100100000010010100000000000010001000100000001001000010001001000001010101001000001000101001000100000001000000100100000100010000100010001000000010010100000010000000010001000010001000001000010101000000000010100001000001000100101000100010000000100101000000100010000000000010000010000010010101000000010000101000000010010100001010000010100000001001010000001000101000000000100000000100100101000000000000101000000000100001000010000000100001010010010100000010001010000010001000000001001000000000100000101000010100100000000010100100000001010100100100001000100002000000100002200001010010000000001010001010000101001001000010100001000000010101001000001010001000000000000000100000000100100000001000100010000000010000010000001000000000010101001010000010101000000001000000001000000001001000000000101000100000000100010100000000010000000100010010000010101010010101010100010010001000010010000000001010001000100001000100010000000100100000000100000000000010000101010000010000101010000000000101000010000010100000010001010100000001001000000001000000000000000100000000000100101010000000100001010000100100101000010100000100000000010010000010010001000001010001000000001001001010000100101001000000100001000000010101000001000000000100100000000100010000010100010000001010010000100001001000010000101001000000000101000000000010101001001000000001000000000101000100000010100110000001010110010100001010010000000101010010000000101010010000010000010000000000010001000000101001000000010001000101001000100100100000010000000000101010000100010100010000100010000000010000001010010000000100010001000010001000101001000000100000000000100100000101000100101010100000100100010000100100201001000100010000100000000010010000001001001000001001000100000000001010100000101001010100000001001010010000000101001000100010100100000010010010010010000001000000001000100000001000010100000000000010100101001001010010001000001001000000100100000100000000000010100010001001010010010100001000010000000001000010000100101010010010010000001001001001001000000000101000100000010100100101001010100000000001010010000000001010000000000101000010010010000010000000001010001000000101001000010010001000101001000100100000001010100100000101010100100000100000100000010010100010000001000010000000100010001010010001001000001000001001000001010100001000101000101001000100000000100010010100100000001000100010100100000000010010000001000001000001001010101000001000010101000001001010100101001001010010001000101001000000000100100000010010010000010010001000000010010100000000010010100001000010010100101010001010010000000001001001001100100100100100000010010100010101000010010000100000000010000000001010000010100100010010010010000011001001001000000000100101000100010010100100101000010000100000000010100100000001010100100100100000000010010010000000001001010001000100101001001010010101000000000010100001000001010100001000001000000000000100100100000010010100010001001000010000100100010001010010001001000000010101001000001010001001000001000001001000100101000100010010000100001001000100010100100000010010010000010010001010001000010101010000010010001001000001000100101001000010010001000101001000000100100100000100000010000010010101000000010000101000000000000101001010010010100100010001010010000001001001001001100000100100100100010000000100101000000000100001000010100100101001000100010100100000010010010010011001001001001001000100101000001010000100100000000000100000000000010100000001001000000100100100100110010010010200000001001010001000100101001001010000101001000000010101001000000010001001001001000001000000100100000000010010100010001001010010010100101010000000010101000010000010101000010000010000000000001001000000000100101000100010010000100101001000100010100100010010000010101010010100010100010010000010000010010001001010001000100100001000010010001000101001000100100000100000100100010000010100101010000000100101010010100010001001000010010100100010001010010000001000001000001000000100000100101010100000100001010000100000001010010100100101001000100010100100000010010010010011000001001001001010100000001001010000000001000010000101001001010010001000101001000000100100100100110010010010010010001001010010010100101000000000000101000010000000101000000010010000001001001001001100100100100000000010010100010101001010010010000101010010000000101010010000000100010010000010010010000001001010000000100101000100010010000100101001000100100000101010000100000101010100100000100000000000010010000010001001010001000100100001001010010001000100001000100100100100010100001010100000100101010100100100100010010100010001001000010010100100010001010010001001000001000001001010100000001001010100000001001010000101002001010010000100101001000100010100100000010000010010010000001000001001010100000001000010000001000000010100101001001010010001000101001001000100100100100110000010010010010101001010010000100001000010000100001010010010020000000000000000020001000000000000000000000002000000000000000000000000000000100000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000110000000000000000000000000000000000000000000000000000000000020000000000000000000002000000000000002000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000002000000200000000000000000000000002000000000000000000000000000000000020000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000001000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000010000200000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000100000000000000000200000000000000000000000002000000000000000000000000000000000020000000200000000000000000000000000002000000000000200000000000020000000000000000000000000000000000000000000000000000000000000000000000000000020000000002000000000200000000000000000000000000000000000000000000000000000000001000000000000000000200000000000000000000000000000000200000000000000000000000000000000100000000000000000000000000000000000000000200000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000100000200000000000000000000000002000000000200000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000001000000000000000000000000002000000000000002000000000002000000000000000000000000200200000000000000000000000000000000000001000000000000000000000000000000000000000000000002000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000200000000000000000000000100000010100000000000000000000000100000000200000000000000000000020000000000000000000000200000000000000000000000000000000000000000200000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000002000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000200000000000000000000000000010000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000020000000000000000000000000000000000000000100000000001000000000000000000000000000000000200000000000200000000000000000000000000000000000000000000000000000000002000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000100000020000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000010000000000000010000002000000000002000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000001000000002000000000000002000000000000000000000000000000000000000000000000000000220000000010000020000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000201000020000000200000000000000000000000001000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000001000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000200010000000000000000000000000000000000100000000000000100000000000000000000000000000000000000000002000100000000000000000000000000010000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000002000000000000000100000000000000000000000000000000000000000200000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000020200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000200000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000002000000000000000000000000000000000020000020000000000000020000000000000000000000000000200000000000020000000000000000000000000000000000000000000001000000000000000000000000000000020000000000000000000200000000000000000000000000000000000000000000010000000000000000000000000000000200000020000000000000000000000000200000000000000000000000000000000000000000000000002000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000100000000000000000020000000000002000000000000002000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000002000000000002000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000200000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000020000000000000001000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000100000000000000000000000000000000000000000000000';

  static double nutationLon2(double t) {
    double a = -1.742 * t, t2 = t * t, dl = 0;
    for (int i = 0, j = NUT_B.length; i < j; i += 5) {
      dl += (NUT_B[i + 3] + a) *
          math.sin(NUT_B[i] + NUT_B[i + 1] * t + NUT_B[i + 2] * t2);
      a = 0;
    }
    return dl / 100 / SECOND_PER_RAD;
  }

  static double eLon(double t, int n) {
    t /= 10;
    double v = 0, tn = 1;
    int n1, n2;
    double m;
    double c;
    int pn = 1;
    double n0, m0 = XL0[pn + 1] - XL0[pn];
    for (int i = 0; i < 6; i++, tn *= t) {
      n1 = XL0[pn + i].floor();
      n2 = XL0[pn + 1 + i].floor();
      n0 = n2 * 1.0 - n1;
      if (n0 == 0) {
        continue;
      }
      if (n < 0) {
        m = n2 * 1.0;
      } else {
        m = (3 * n * n0 / m0 + 0.5).floorToDouble() + n1;
        if (i != 0) {
          m += 3;
        }
        if (m > n2) {
          m = n2 * 1.0;
        }
      }
      c = 0;
      for (int j = n1; j < m; j += 3) {
        c += XL0[j] * math.cos(XL0[j + 1] + t * XL0[j + 2]);
      }
      v += c * tn;
    }
    v /= XL0[0];
    double t2 = t * t;
    v +=
        (-0.0728 - 2.7702 * t - 1.1019 * t2 - 0.0996 * t2 * t) / SECOND_PER_RAD;
    return v;
  }

  static double mLon(double t, int n) {
    List<List<double>> ob = XL1;
    int obl = ob[0].length;
    double tn = 1;
    double v = 0;
    int j;
    double c = 0;
    double t2 = t * t, t3 = t2 * t, t4 = t3 * t, t5 = t4 * t, tx = t - 10;
    v += (3.81034409 +
            8399.684730072 * t -
            3.319e-05 * t2 +
            3.11e-08 * t3 -
            2.033e-10 * t4) *
        SECOND_PER_RAD;
    v += 5028.792262 * t +
        1.1124406 * t2 +
        0.00007699 * t3 -
        0.000023479 * t4 -
        0.0000000178 * t5;
    if (tx > 0) {
      v += -0.866 + 1.43 * tx + 0.054 * tx * tx;
    }
    t2 /= 1e4;
    t3 /= 1e8;
    t4 /= 1e8;

    n *= 6;
    if (n < 0) {
      n = obl;
    }
    for (int i = 0, x = ob.length; i < x; i++, tn *= t) {
      List<double> f = ob[i];
      int l = f.length;
      int m = (n * l / obl + 0.5).floor();
      if (i > 0) {
        m += 6;
      }
      if (m >= l) {
        m = l;
      }
      c = 0;
      for (j = 0; j < m; j += 6) {
        c += f[j] *
            math.cos(f[j + 1] +
                t * f[j + 2] +
                t2 * f[j + 3] +
                t3 * f[j + 4] +
                t4 * f[j + 5]);
      }
      v += c * tn;
    }
    v /= SECOND_PER_RAD;
    return v;
  }

  static double gxcSunLon(double t) {
    double t2 = t * t;
    double v = -0.043126 + 628.301955 * t - 0.000002732 * t2;
    double e = 0.016708634 - 0.000042037 * t - 0.0000001267 * t2;
    return -20.49552 * (1 + e * math.cos(v)) / SECOND_PER_RAD;
  }

  static double ev(double t) {
    double f = 628.307585 * t;
    return 628.332 +
        21 * math.sin(1.527 + f) +
        0.44 * math.sin(1.48 + f * 2) +
        0.129 * math.sin(5.82 + f) * t +
        0.00055 * math.sin(4.21 + f) * t * t;
  }

  static double saLon(double t, int n) {
    return eLon(t, n) + nutationLon2(t) + gxcSunLon(t) + math.pi;
  }

  static double dtExt(double y, double jsd) {
    double dy = (y - 1820) / 100;
    return -20 + jsd * dy * dy;
  }

  static double dtCalc(double y) {
    int size = DT_AT.length;
    double y0 = DT_AT[size - 2];
    double t0 = DT_AT[size - 1];
    if (y >= y0) {
      double jsd = 31;
      if (y > y0 + 100) {
        return dtExt(y, jsd);
      }
      return dtExt(y, jsd) - (dtExt(y0, jsd) - t0) * (y0 + 100 - y) / 100;
    }
    int i;
    for (i = 0; i < size; i += 5) {
      if (y < DT_AT[i + 5]) {
        break;
      }
    }
    double t1 = (y - DT_AT[i]) / (DT_AT[i + 5] - DT_AT[i]) * 10,
        t2 = t1 * t1,
        t3 = t2 * t1;
    return DT_AT[i + 1] +
        DT_AT[i + 2] * t1 +
        DT_AT[i + 3] * t2 +
        DT_AT[i + 4] * t3;
  }

  static double dtT(double t) {
    return dtCalc(t / 365.2425 + 2000) / SECOND_PER_DAY;
  }

  static double mv(double t) {
    double v =
        8399.71 - 914 * math.sin(0.7848 + 8328.691425 * t + 0.0001523 * t * t);
    v -= 179 * math.sin(2.543 + 15542.7543 * t) +
        160 * math.sin(0.1874 + 7214.0629 * t) +
        62 * math.sin(3.14 + 16657.3828 * t) +
        34 * math.sin(4.827 + 16866.9323 * t) +
        22 * math.sin(4.9 + 23871.4457 * t) +
        12 * math.sin(2.59 + 14914.4523 * t) +
        7 * math.sin(0.23 + 6585.7609 * t) +
        5 * math.sin(0.9 + 25195.624 * t) +
        5 * math.sin(2.32 - 7700.3895 * t) +
        5 * math.sin(3.88 + 8956.9934 * t) +
        5 * math.sin(0.49 + 7771.3771 * t);
    return v;
  }

  static double saLonT(double w) {
    double t, v = 628.3319653318;
    t = (w - 1.75347 - math.pi) / v;
    v = ev(t);
    t += (w - saLon(t, 10)) / v;
    v = ev(t);
    t += (w - saLon(t, -1)) / v;
    return t;
  }

  static double msaLon(double t, int mn, int sn) {
    return mLon(t, mn) + (-3.4E-6) - (eLon(t, sn) + gxcSunLon(t) + math.pi);
  }

  static double msaLonT(double w) {
    double t, v = 7771.37714500204;
    t = (w + 1.08472) / v;
    t += (w - msaLon(t, 3, 3)) / v;
    v = mv(t) - ev(t);
    t += (w - msaLon(t, 20, 10)) / v;
    t += (w - msaLon(t, -1, 60)) / v;
    return t;
  }

  static double msaLonT2(double w) {
    double t, v = 7771.37714500204;
    t = (w + 1.08472) / v;
    double l, t2 = t * t;
    t -= (-0.00003309 * t2 +
            0.10976 * math.cos(0.784758 + 8328.6914246 * t + 0.000152292 * t2) +
            0.02224 * math.cos(0.18740 + 7214.0628654 * t - 0.00021848 * t2) -
            0.03342 * math.cos(4.669257 + 628.307585 * t)) /
        v;
    t2 = t * t;
    l = mLon(t, 20) -
        (4.8950632 +
            628.3319653318 * t +
            0.000005297 * t2 +
            0.0334166 * math.cos(4.669257 + 628.307585 * t) +
            0.0002061 * math.cos(2.67823 + 628.307585 * t) * t +
            0.000349 * math.cos(4.6261 + 1256.61517 * t) -
            20.5 / SECOND_PER_RAD);
    v = 7771.38 -
        914 * math.sin(0.7848 + 8328.691425 * t + 0.0001523 * t2) -
        179 * math.sin(2.543 + 15542.7543 * t) -
        160 * math.sin(0.1874 + 7214.0629 * t);
    t += (w - l) / v;
    return t;
  }

  static double shuoHigh(double w) {
    double t = msaLonT2(w) * 36525;
    t = t - dtT(t) + ONE_THIRD;
    double v = ((t + 0.5) % 1) * SECOND_PER_DAY;
    if (v < 1800 || v > SECOND_PER_DAY - 1800) {
      t = msaLonT(w) * 36525 - dtT(t) + ONE_THIRD;
    }
    return t;
  }

  static double shuoLow(double w) {
    double v = 7771.37714500204;
    double t = (w + 1.08472) / v;
    t -= (-0.0000331 * t * t +
                0.10976 * math.cos(0.785 + 8328.6914 * t) +
                0.02224 * math.cos(0.187 + 7214.0629 * t) -
                0.03342 * math.cos(4.669 + 628.3076 * t)) /
            v +
        (32 * (t + 1.8) * (t + 1.8) - 20) / SECOND_PER_DAY / 36525;
    return t * 36525 + ONE_THIRD;
  }

  static double calcShuo(double jd) {
    int size = SHUO_KB.length;
    double d = 0;
    int pc = 14, i;
    jd += Solar.J2000;
    double f1 = SHUO_KB[0] - pc, f2 = SHUO_KB[size - 1] - pc, f3 = 2436935;
    if (jd < f1 || jd >= f3) {
      d = (shuoHigh(((jd + pc - 2451551) / 29.5306).floorToDouble() * PI_2) +
              0.5)
          .floorToDouble();
    } else if (jd >= f1 && jd < f2) {
      for (i = 0; i < size; i += 2) {
        if (jd + pc < SHUO_KB[i + 2]) {
          break;
        }
      }
      d = SHUO_KB[i] +
          SHUO_KB[i + 1] *
              ((jd + pc - SHUO_KB[i]) / SHUO_KB[i + 1]).floorToDouble();
      d = (d + 0.5).floorToDouble();
      if (d == 1683460) {
        d++;
      }
      d -= Solar.J2000;
    } else if (jd >= f2 && jd < f3) {
      d = (shuoLow(((jd + pc - 2451551) / 29.5306).floorToDouble() *
                  math.pi *
                  2) +
              0.5)
          .floorToDouble();
      int from = ((jd - f2) / 29.5306).floor();
      String n = SB.substring(from, from + 1);
      if ('1' == n) {
        d += 1;
      } else if ('2' == n) {
        d -= 1;
      }
    }
    return d;
  }
}
